機器學習 回歸

2021-10-07 17:27:02 字數 3191 閱讀 2065

線性回歸方程引數求解有兩種方式:

梯度下降法(gradient descent)

假設函式和代價函式:假設函式是我們選取的假設為最終求解到的函式曲線形式,而代價函式是乙個評估現在的曲線和真實樣本的差距(一般用平均方差表示)

梯度表明了乙個函式變化最快方向的數值,用梯度下降法經過多次迭代可以使得代價函式趨於收斂狀態,得到當前樣本下最擬合的曲線

通過對代價函式求梯度,通過迭代得到:theta_new = theta_old - alpha * j(theta), 我們可以得到最理想化的theta

alpha為學習率,一般選取為0.001 - 0.003 - 0.01 - 0.03 -0.1,約為3倍

正規方程法

由於是線性的方程(如果不是,可以通過變數的代換轉換為線性,如 x1 = (house_size) ^ 2)

如上圖所示,我們對於theta0做了再新增乙個全為1的特徵列x0,使得可以通過矩陣進行快速的運算theta的結果

由線性代數的相關知識(以上圖為例),設定未知引數theta為乙個列向量theta,於是可以得到x * theta = y, 假設x都是可逆的,就可以得到,theta = x^(-1) * y,轉換後可以得到圖中的結果

兩者的優缺點以及選擇

gradient descent:需要選擇學習率alpha,需要不斷調整引數;需要迭代多次,具體的次數取決於收斂的狀況和學習率的取值

正規方程法:矩陣求逆運算對於計算的計算能力要求極高,所以特徵不能太多

選擇:當樣本的某一特徵的樣本數大於10000時(特徵列向量的維數),選擇gradient descent,否則選擇正規方程法

資料處理

如果兩個特徵的取值範圍相差三倍以上,例如乙個在(-1,1),另乙個在(-100,100),則需要對第二個進行特徵放縮處理

放縮處理一般採用歸一化處理(mean normalization),特徵值減去特徵值的平均值除以區間範圍或者標準差

如果代價曲線隨迭代次數遞增,則考慮學習率選擇過大;如果代價曲線忽大忽小,則考慮學習率選擇過大

邏輯回歸演算法,實際為分類演算法。

假設函式的表示式以及方程的選取

g(z) = 1 / (1 + e ^ (-z)):logistic function, sigmoid function:機率函式

假設函式h(x) = 1 / (1 + e ^ ( - thetat* x))

h(x) 的結果為此個特徵向量為positive的機率,比如是乙個病人的腫瘤特徵,代入計算後,得到的h(x) = 0.7:那麼就是,這個病人有0.7(70%)的機率是陽性(malignant惡性腫瘤)

h(x) = p(y = 1| x; theta):在給定假設theta和特徵向量的條件下,y = 1 的概率

於是可以得到:p(y = 0| x; theta) = 1 - p(y = 1| x; theta)

決策邊界(decision boundary)

我們選擇了乙個閾值為0.5,於是就有z>0時, y = 1

在給定theta後,只需要g(z)中的z > 0, 即thetat * x > 0就可以確定y = 1;

現在,已知y = 1,theta也已知,假設特徵向量是二維的,就可以通過thetat * x > 0計算得出乙個x_1 和x_2的不等式,滿足不等式的區域就位y = 1的區域,而兩個區域的交界就是決策邊界;而這個邊界也可以是各種曲線,取決於x_1和x_2的的次方(如 x_1^2 + x_2 ^ 2 >= 1 表示乙個圓域);

決策邊界是假設函式的屬性而不是資料集的屬性,就算沒有特徵向量,決策邊界也依然存才

如何擬合邏輯回歸的引數theta

代價函式: 如果按照線性回歸中的代價函式來假設,就會使得代價函式是非凸函式,因為假設函式h(x)是非線性的,於是就有很多區域性最優解。

於是我們需要尋找另一種代價函式:

為了使得討論y的情況合二為一,進行數學上的處理得到(統計學得出,凸函式 ):

我們用梯度下降發求解theta,這個與線性回歸不一樣,因為這裡的h(x) = 1 / (1 + e ^ (- theta^t ×x)),而之前線性回歸中是theta ^ t × x,所以這兩個不是同乙個方法。

注意特徵放縮也可以用於這個分類方法

高階優化

j(theta)和其導數,會有其他的演算法來優化他們,得到最小化代價函式,梯度下降法只是其中的乙個較為簡單的。

共軛梯度法(bfgs)、l-bfgs、conjugate gradient、gradient descent等,前三種高階的演算法的優點是:a) 不需要自己手動選擇學習率alpha、b) 比梯度下降法更快。缺點是:演算法更複雜!

採用matlab中的fmiunc(@costfunction, initialtheta, options),options是需要設定的引數,梯度方式,迭代次數,收斂標記,最終代價等。

1對多分類問題

如果是3分類,將乙個為正樣本,其餘兩個為負得到乙個決策邊界,以此類推可以得到三個邊界以及3個分類器

針對給定的乙個需要**的值,可以分別代入三個分類器進行就按計算,得到不同的概率,於是就可以比較應該判定為哪乙個!

機器學習 回歸

有別於分類問題,回歸問題,主要是通過特徵來構造乙個函式,並用這個函式求得的值來近似的估計我們需要 的值。回歸的種類有很多,當然我一時之間不能夠完全的總結出所有的回歸分析方法,但是我們在以後的學習中慢慢的補充。作為乙個初學者,以下的總結可能有一些個人的誤區,所以如果出現什麼錯誤的話,我希望各個讀者能夠...

機器學習 回歸

機器學習之路 python支援向量機回歸svr 波士頓地區房價 python3 學習使用api 支援向量機的兩種核函式模型進行 原始碼 git from sklearn.datasets import load boston from sklearn.cross validation import ...

機器學習 logistic回歸

統計機器學習有兩種常見的機器學習演算法 logistic回歸和svm,這兩種演算法都涉及到優化問題,是非常重要的兩種機器學習演算法,尤其是logistic回歸可能是工程上用的最廣泛的機器學習演算法了。在logistic回歸中訓練分類器就是尋找最佳擬合引數,使用的是最簡單常見優化演算法 梯度下降法。l...