標籤:blog http os ar 資料 2014 問題 log sp
知道某個演算法,和運用一個演算法是兩碼事兒。
當你訓練出資料後,發覺模型有太大誤差,怎麼辦?
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:解決過擬合
每日一個機器學習演算法——機器學習實踐