【機器學習】線性迴歸演算法的過擬合比較
阿新 • • 發佈:2018-11-26
回顧
- 過擬合與欠擬合 主要介紹了什麼是欠擬合什麼是過擬合
- 對抗過擬合 主要介紹了線性迴歸中對抗過擬合的方法,主要包括:L1-norm的LASSO迴歸、L2-norm的Ridge迴歸,此外還有一個沒有提到,L1-norm和L2-norm結合的Elasitc Net(彈性網路)
Ridge模型具有較高的準確性、魯棒性以及穩定性;LASSO模型具有較高的求解速度;
如果既要考慮穩定性也考慮求解的速度,就使用Elasitc Net
後面我們將對線性迴歸、LASSO迴歸、Ridge迴歸以及Elasitc Net模型的過擬合比較
下面我們首先來看看過擬合是什麼樣子的
線性迴歸過擬合示例
圖中真實資料點是由
再加上隨機數產生的,表示三階模型應該是最好的模型
上圖我們通過多項式線性迴歸實現了不同階數的資料擬合程度
當階數為1時,為一條直線,不能夠很好的擬合數據,屬於欠擬合
當階數為3時,基本與資料擬合,正確率基本為1,因為我們加入了隨機數,所以3階模型不可能百分百擬合
當階數為5時,正確率達到了1,已經達到了最大值,再往後就是過擬合了
當階數為9時,我們可以明顯發現,曲線在前面一段有突變,出現嚴重過擬合,往後就更過擬合了
原始碼可見:Github下的06_過擬合.py
迴歸演算法過擬合比較
圖中我們可以看出:
- 線性迴歸在9階時出現了過擬合,而其他迴歸模型沒有
- 因為其他三個模型都對過擬合進行的處理
原始碼可見:Github下07_迴歸各種演算法的過擬合比較.py