每日一個機器學習算法——機器學習實踐


知道某個算法,和運用一個算法是兩碼事兒。

 

當你訓練出數據后,發覺模型有太大誤差,怎么辦?

1)獲取更多的數據。也許有用吧。

2)減少特征維度。你可以自己手動選擇,也可以利用諸如PCA等數學方法。

3)獲取更多的特征。當然這個方法很耗時,而且不一定有用。

4)添加多項式特征。你在抓救命稻草么?

5)構建屬於你自己的,新的,更好的特征。有點兒冒險。

6)調整正則化參數lambuda。

以上方法的嘗試有些碰運氣,搞不好就是浪費大把時間。

machine learning diagonostic. 機器學習診斷。檢查正確性,提升效率,節省調試時間。

一,評估假設

loss越小,不代表模型越好,有可能出現過擬合的現象。

正確的方法是:將數據分割為訓練集和測試集。利用訓練集訓練數據,測試集進行測試求出測試集誤差(test set error)

 

二,模型選擇與訓練驗證測試集

如何選擇正則化參數和多項式次數(模型選擇)

嘗試不同的正則化參數和多項式次數,選擇在測試集上損失最小的model。這似乎可行,但都是針對測試集計算,無法驗證泛化能力。

解決的方法就是划分出三個集合:訓練集,驗證集,和測試集。

利用驗證集選擇最佳的參數模型,之后再在測試集上計算泛化損失。

 

三,模型診斷:bias vs variance

過擬合和欠擬合的判斷方法

繪制曲線

當d過小,有可能是欠擬合

當d過大,有可能是過擬合

對於欠擬合而言,驗證集和訓練集的loss均非常大

對於過擬合而言,訓練集的loss很小,而驗證集的loss很大。

 

四,正則化參數對欠擬合過擬合的平衡

lambuda很大的話,容易欠擬合,過小則容易過擬合。

如何選擇?

設置一個正則化參數的選擇范圍,在驗證集上計算每一個值所對應的loss的大小,選擇最小的那個。

 

五,學習曲線

high bias:

Jcv和Jtrain在m很大的情況下,都很高。

此時,增加樣本數將沒有效果。因為模型本身出了問題。可能的問題是模型過於簡單。

 

high variance:

Jcv和Jtrain之間間隔很大。

此時,增加訓練樣本數有可能會有很好的效果。

 

六、總結

1)獲取更多樣本:解決過擬合。欠擬合則不行。

2)更小的特征集:同上。

3)添加其他特征:解決欠擬合

4)添加多項式:解決欠擬合

5)減小lambuda: 解決欠擬合

6)增大Lambuda:解決過擬合


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM