1. 程式人生 > >線性迴歸、預測迴歸、一般迴歸

線性迴歸、預測迴歸、一般迴歸

平方誤差代價函式

我們的目標就是讓J()儘可能的小

平方誤差代價函式 .png

梯度下降
  • := 是賦值的意思
  • α 是指learning rate(學習速度)

梯度下降

對theta求導(斜率),theta在左半邊的時候,斜率為負,所以theta會向右更新,同理在又邊的時候會向左更新。可以得出當斜率為0的時候,theta不再更新。

偏導數.jpg

我們可以用梯度下降對多個引數(theta)進行求導,當多個引數均開始收斂(即前後兩次迭代的值不再發生變化了。一般情況下,會設定一個具體的引數,當前後兩次迭代差值小於該引數時候結束迭代)的時候,這即為一個比較合適的值。

最後得出的偏導公式.jpg

最小二乘法

將訓練特徵表示為X矩陣,結果表示成y向量,仍然是線性迴歸模型,誤差函式不變。那麼θ可以直接由下面公式得出

 此方法要求X是列滿秩的,而且求矩陣的逆比較慢。 

最小二乘法

帶權重的線性迴歸
上面提到的線性迴歸的誤差函式裡系統都是1,沒有權重。帶權重的線性迴歸加入了權重資訊。
  • 基本假設是
    !

  • 其中假設w(i)符合公式:
    image.png

其中x是要預測的特徵,這樣假設的道理是離x越近的樣本權重越大,越遠的影響越小。這個公式與高斯分佈類似,但不一樣,因為W(i)不是隨機變數。
此方法成為非引數學習演算法,因為誤差函式隨著預測值的不同而不同,這樣θ無法事先確定,預測一次需要臨時計算,感覺類似KNN。

分類和對數迴歸

一般來說,迴歸不用在分類問題上,因為迴歸是連續型模型,而且受噪聲影響比較大。如果非要應用進入,可以使用對數迴歸。

對數迴歸本質上是線性迴歸,只是在特徵到結果的對映中加入了一層函式對映,即先把特徵線性求和,然後使用函式g(z)將最為假設函式來預測。g(z)可以將連續值對映到0和1上。

對數迴歸的假設函式如下,線性迴歸假設函式只是θ^T x

######sigmod函式/Logistic函式
sigmod函式

sigmod函式的軌跡

對數迴歸用來分類0/1問題,也就是預測結果屬於0或者1的二值分類問題。這裡假設了二值滿足伯努利分佈,也就是
image.png
當然假設它滿足泊松分佈、指數分佈等等也可以,只是比較複雜,後面會提到線性迴歸的一般形式。
與第7節一樣,仍然求的是最大似然估計,然後求導,得到迭代公式結果為

這個結果看上去與線性迴歸類似,只是θ^T x(i)換成了hθ (x(i)),但其實h就是θ^T x(i)經過g(z)對映過來的,而這也是它與最小二乘迴歸的最大區別
image.png

嶺迴歸

簡單來說,嶺迴歸是在矩陣X^tX上加入一個∂ I 從而使矩陣奇異,進而能對X^tX+ ∂ I 求逆。其中矩陣I是一個m*m的單位矩陣,對角線元素為1,其餘元素為0,而∂是一個使用者定義的數值。在這種情況下,迴歸係數的計算公式變成:

迴歸係數公式
嶺迴歸最先用於處理特徵數多於樣本數的情況,現在也用於在估計中加入偏差,從而得到更好的估計,這裡通過引入∂來限制了所有w之和,通過引入懲罰項,能夠減少不重要的引數,這個技術在統計學中也叫做縮減。