知識點:過擬合、欠擬合,以及它們與正則化的權重、模型參數的複雜度、和訓練集樣本數的關係圖
轉載:http://blog.csdn.net/lonelyrains/article/details/49305795
模型不理想時,怎麼調整模型?是要更多樣本?是要更多或者少的附加其他特徵或者多項式特徵?正規化的λ參數應該更大或者更小?
怎麼評價模型是否理想?欠擬合或者過擬合?將數據分爲訓練集70%、測試集30%。
通過訓練集得到可能的Θ矩陣,然後根據測試集的結果選擇誤差最小的那種模型。
因爲根據測試集的結果選擇誤差最小是挑選過的,所以測試集的效果評價相對未知的測試數據來說可能是過於樂觀的估計。故通常將數據集分成三類:
訓練集 Train 60%
驗證集 CV cross validation 20%
測試集 Test 20%
通過訓練集得到可能的Θ矩陣,然後根據驗證集測試的結果選擇所有模型中誤差最小的那種模型。最後再根據測試集的結果說明當前模型的效果。
評價欠擬合:代價函數都很大 稱爲偏差bias大
評價過擬合:訓練集的代價函數很小,而驗證集、測試集的代價函數非常大 稱爲方差variance大
1、正規化的λ參數與偏差和方差的關係
注:λ非常大時,參數影響力變小,則肯定是欠擬合
2、屬性參數數目多少或者屬性參數多項式的最高指數項的高低與偏差和方差的關係
屬性參數多或者多項式最高指數項的指數很高時,對於訓練樣本,比較容易滿足;但是對於檢驗樣本,因爲之前沒有匹配,所以可能非常大的誤差(過擬合)。相反,如果參數項少或者參數的多項式最高指數項比較低,則容易導致對於訓練樣本都無法滿足,則對於檢測樣本也一樣(欠擬合)。
3、樣本數與偏差和方差的關係
在其他條件不變的情況下,樣本數增多時,訓練樣本的錯誤都會增加比較多,再增多時,可能達到飽和,誤差的平均值沒有太大變化;而樣本比較少時,雖然訓練樣本的錯誤會比較低,但是因爲欠擬合,檢驗樣本的錯誤均值反而比較高。
如果有高偏差,則增加樣本數沒有什麼作用,因爲高偏差意味着欠擬合,現有的樣本也沒用到。
如果有高方差,意味着過擬合,增加樣本,則比較能優化、趨同。所以增加樣本是一種減小高方差的方法。
4、Jtrain曲線和Jcv曲線通常不會重合,因爲神經模型是根據Jtrain取的,所以相對之前未知的cv檢驗樣本,擬合得更合適。所以以誤差表示縱軸時,Jcv通常在Jtrain的上方。但是由於取樣本點的隨機性,可能導致Jcv與Jtrain有交叉,即Jcv小於Jtrain的情況。
5、神經網絡方面,使用更多的隱藏層和結點數,通常傾向於過擬合(高方差),反之,如果更少的隱藏層和結點數,通常傾向於欠擬合(高偏差)。與屬性參數多少導致學習曲線的變化基本是一致的。
綜上,高方差(過擬合)時的解決方法有:1、減少屬性、降低高指數多項式、增加樣本數、增大λ;反之則爲高偏差的解決方法。