【1】引言
前序學習進程中,對用scikit-learn表達線性回歸進行了初步解讀。
線性回歸能夠將因變量yyy表達成由自變量xxx、線性系數矩陣www和截距bbb組成的線性函數式:
y=∑i=1nwi?xi+b=wTx+by=\sum_{i=1}^{n}w_{i}\cdot x_{i}+b=w^T{x}+by=i=1∑n?wi??xi?+b=wTx+b實際上很多時候數據之間不一定是理想化的線性關系,所以需要對線性關系式進行修正,這個時候就可以考慮嶺回歸。
【2】嶺回歸的原理
嶺回歸是修正后的線性回歸,所以描述嶺回歸,必須先會議線性回歸。
在用scikit-learn表達線性回歸中,我們在代碼中使用了一個參數:均方誤差。
【2.1】線性回歸均方誤差
對于線性回歸,均方誤差的計算式子為:
L(w,b)=∑i=1n(yi?yi^)2=∑i=1n(yi?(wTxi+b))2L(w,b)=\sum_{i=1}^{n}(y_{i}-\hat{y_{i}})^2=\sum_{i=1}^{n}(y_{i}-(w^Tx_{i}+b))^2L(w,b)=i=1∑n?(yi??yi?^?)2=i=1∑n?(yi??(wTxi?+b))2在這里,yyy是第i個樣本的真實值,y^\hat{y}y^?是第i個樣本的預測值。
線性回歸的均方誤差將真實值和預測值作差后求平方和即可。
【2.2】嶺回歸均方誤差
嶺回歸相對于線性回歸,均方誤差的計算式子增加了對參數權重平方和的計算,稱之為L2正則化懲罰項:
L(w,b)=∑i=1n(yi?yi^)2+α∑j=1mwj2=∑i=1n(yi?(wTxi+b))2+α∑j=1mwj2L(w,b)=\sum_{i=1}^{n}(y_{i}-\hat{y_{i}})^2+\alpha\sum_{j=1}^{m}w_{j}^{2}=\sum_{i=1}^{n}(y_{i}-(w^Tx_{i}+b))^2+\alpha\sum_{j=1}^{m}w_{j}^{2}L(w,b)=i=1∑n?(yi??yi?^?)2+αj=1∑m?wj2?=i=1∑n?(yi??(wTxi?+b))2+αj=1∑m?wj2?在這里,yyy是第i個樣本的真實值,y^\hat{y}y^?是第i個樣本的預測值。
新增加的L2正則化懲罰項α∑j=1mwj2\alpha\sum_{j=1}^{m}w_{j}^{2}α∑j=1m?wj2?包括兩部分:
第一部分α>0\alpha>0α>0代表正則化強度,可以控制對第二項懲罰的力度;
第二部分∑j=1mwj2\sum_{j=1}^{m}w_{j}^{2}∑j=1m?wj2?是所有線性系數的平方和。
當α\alphaα越大,懲罰項整體就會越大,這個時候往往需要將wjw_{j}wj?調小,也就是通過調整wj→0w_{j}\rightarrow 0wj?→0來避免過度擬合;
當α=0\alpha=0α=0,此時懲罰項不起作用,嶺回歸退化為線性回歸。
【2.3】嶺回歸的意義
嶺回歸通過添加懲罰項解決了線性回歸至少兩個問題:
多重共線性,當變量之間高度相關時,在線性回歸計算中可能獲得極大的wjw_{j}wj?,通過懲罰項可以將這些參數下降到較小的范圍,使得模型對數據波動的敏感性降低,從而獲得更加穩健的效果;
過擬合,當變量過多或者噪聲過大時,線性回歸可能過度擬合數據,懲罰項通過將線性系數wjw_{j}wj?調小,讓模型更傾向于關注整體趨勢而非噪音。
【3】總結
嶺回歸和線性回歸都是線性關系式的推演,但嶺回歸通過L2正則化懲罰項讓線性系數wjw_{j}wj?保持在合理且較小的范圍,讓回歸模型更穩健、更準確。