摘要:最小二乘法、嶺迴歸、Lasso的區別在於損失函數不同,本文sklearn+Python代碼實例演示嶺迴歸和Lasso,最後小結。
一、數據集來源及格式
與上篇相同,根據前4個特徵預測發電量
使用Seaborn畫出各特徵與PE關係圖:
可得各特徵與PE關係圖:
請留意上圖於權重的關係。
二、嶺迴歸與lasso
嶺迴歸的損失函數為平方損失 + 所有權重平方和 * λ , λ>0。
lasso的損失函數為平方損失 + 所有權重絕對值 * λ , λ>0。
閱讀過 的朋友可知:
嶺迴歸相當於在更新權重時每次移除權重的 x%;
lasso相當於在更新權重時每次遞減(加)一個常數,使網絡中的權重儘可能為0,因此可用於特徵選擇;
兩者都是為了降低模型複雜度,提高泛化能力。
三、sklearn+Python代碼:
輸出偏置和權重如下:
使用matplotlib畫出真實值和預測值的變化關係:
圖如下
四、三者什麼時候更適用?
最小二乘法:特徵獨立分佈,且與結果相關;
嶺迴歸:特徵之間具有強相關性;
Lasso:存在無關特徵。
閱讀更多 IT老友 的文章