1. 程式人生 > >機器學習演算法 - 線性迴歸

機器學習演算法 - 線性迴歸

線性迴歸演算法

  • 解決迴歸問題
  • 思想簡單,容易實現
  • 許多強大的非線性模型的基礎
  • 結果具有很好的可解釋性
  • 蘊含機器學習中很多重要的思想$$y=ax_i +b$$

 

樣本特徵只有一個的線性迴歸問題,為簡單線性迴歸。

樣本特徵有多個的線性迴歸問題,為多元線性迴歸。(由此可見,線性並不代表直線)

線性迴歸演算法將無數的訓練集資料放在一個座標系中,以座標系的一個維度作為 label,其他維度作為特徵, 最終會發現他們是沿著一條直線分佈。線性迴歸演算法的最終目的就是尋找出一條直線、一個面或者體 (根據資料的維度而定), 最大程度上 "擬合" 樣本特徵和輸出 label 之間的關係。

特徵是一維時,線性模型在二維空間構成一條直線; 特徵是二維時,線性模型在三維空間中構成一個平面; 特徵是三維時,則最終模型在四維空間中構成一個體; 以此類推…

簡單線性迴歸演算法思想

在簡單線性迴歸中,我們將訓練集特徵作為橫座標,訓練集 label 作為縱座標,那麼我們的最終目的就是 尋找出一條直線$$ y = ax_{i} + b $$ 當給出新的特徵時, 我們希望能夠帶入到y = ax_{i} + b 中,求出預測值。

公式推導

找到 a 和 b 使得 儘可能小, 這是一個典型的最小二乘法問題:最小化誤差的平方 損失函式是計算期望值和預測值的差值,期望其差值 (也就是損失) 越來越小

簡單線性迴歸演算法公式推導

求損失函式 的最小值

最小二乘法求解:本質是試圖找到一條直線,使得樣本上的點到直線的歐式距離之和最小$$ J(a,b) =  \sum_{i=1}^{m} (y^{(i)} -ax^{(i)} -b)^2 $$

對損失函式求導並且令

$$\frac{\partial J(a,b)}{\partial b}  = 0,\frac{\partial J(a,b)}{\partial a}  = 0$$

$$ \frac{\partial J(a,b)} {\partial b}  =\sum_{i=1}^{m} 2(y^{(i)} -ax^{(i)} -b)(-1)  = 0  \text {} $$