線性迴歸-最小二乘法

轉自博客https://www.cnblogs.com/softlin/p/5815531.html。若侵權,告知即刪

相信學過數理統計的都學過線性迴歸(linear regression),本篇文章詳細將講解單變量線性迴歸並寫出使用最小二乘法(least squares method)來求線性迴歸損失函數最優解的完整過程,首先推導出最小二乘法,後用最小二乘法對一個簡單數據集進行線性迴歸擬合

線性迴歸

  線性迴歸假設數據集中特徵與結果存在着線性關係;

  等式:y = mx + c

  y爲結果,x爲特徵,m爲係數,c爲誤差 在數學中m爲梯度c爲截距

  這個等式爲我們假設的,我們需要找到m、c使得mx+c得到的結果與真實的y誤差最小,這裏使用平方差來衡量估計值與真實值得誤差(如果只用差值就可能會存在負數); 用於計算真實值與預測值的誤差的函數稱爲:平方損失函數(squard loss function);這裏用L表示損失函數,所以有:

1

  整個數據集上的平均損失爲:
2

  我們要求得最匹配的m與c使得L最小;
數學表達式可以表示爲:

3

  最小二乘法用於求目標函數的最優值,它通過最小化誤差的平方和尋找匹配項所以又稱爲:最小平方法;這裏將用最小二乘法用於求得線性迴歸的最優解;

最小二乘法

  爲了方便講清楚最小二乘法推導過程這裏使用,數據集有1…N個數據組成,每個數據由、構成,x表示特徵,y爲結果;這裏將線性迴歸模型定義爲:
4

平均損失函數定義有:

5_1
5_1

  要求得L的最小,其關於c與m的偏導數定爲0,所以求偏導數,得出後讓導數等於0,並對c與m求解便能得到最小的L此時的c與m便是最匹配該模型的;

關於c偏導數:

因爲求得是關於c的偏導數,因此把L的等式中不包含c的項去掉得:
6

整理式子把不包含下標n的往累加和外移得到:
7
對c求偏導數得:
8

關於m的偏導數:

求關於m的偏導數,因此把L等式中不包含項去掉得:

9
  整理式子把不包含下標n的往累加和外移得到:
10
對m求偏導數得:
11

令關於c的偏導數等於0,求解:

12

從上求解得到的值可以看出,上面式子中存在兩個平均值,因此該等式也可以改寫成:

13

令關於m的偏導數等於0,求解:
  關於m的偏導數依賴於c,又因爲已經求得了關於c偏導數的解,因此把求關於c偏導數的解代數關於m的偏導數式子得:
14_1
14_2
14_3

合併含有m的項化簡:

15
求解:

16_1
16_2

爲了簡化式子,再定義出:
17

示例:

這裏使用上面得到的最小二乘法公式對以下數據集進行線性擬合:

n x y xy x^2
1 2 4 8 4
2 6 8 48 36
3 9 12 108 81
4 13 21 273 169
平均值 7.5 11.25 109.25 72.5

數據點分佈情況:

19

根據上訴最小二乘法公式計算出當前數據集最優:m與c

21

c = 11.25 - 1.5307 * 7.5 = -0.23

最後得出當前線性函數爲:

y = 1.5307x - 0.23

計算出每個節點的預測值:

y1 = 1.5307 * 2 - 0.23 = 2.83
y2 = 1.5307 * 6 - 0.23 = 8.9542
y3 = 1.5307 * 9 - 0.23 = 13.5463
y4 = 1.5307 * 13- 0.23 = 19.6691

擬合結果:

 

參考資料:
https://zh.wikipedia.org/zh/%E6%9C%80%E5%B0%8F%E4%BA%8C%E4%B9%98%E6%B3%95
a first course in machine learning

文章首發地址:Solinx
http://www.solinx.co/archives/648

分類: MachineLearning

標籤: 最小二乘法線性迴歸機器學習

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章