概念
為了得到一致假設而使假設變得過度嚴格稱為過擬合。
定義
給定一個假設空間H,一個假設h屬于H,如果存在其他的假設h’屬于H,使得在訓練樣例上h的錯誤率比h’小,但在整個實例分布上h’比h的錯誤率小,那么就說假設h過度擬合訓練數據。 [1]
判斷方法
一個假設在訓練數據上能夠獲得比其他假設更好的擬合, 但是在訓練數據外的數據集上卻不能很好地擬合數據,此時認為這個假設出現了過擬合的現象。出現這種現象的主要原因是訓練數據中存在噪音或者訓練數據太少。
圖例
例:如圖所示為不同的分類方式(分類器)
a,b過擬合 c,d不過擬合
a,b過擬合 c,d不過擬合
可以看出在a中雖然完全的擬合了樣本數據,但對于b中的測試數據分類準確度很差。而c雖然沒有完全擬合樣本數據,但在d中對于測試數據的分類準確度卻很高。過擬合問題往往是由于訓練數據少等原因造成的。
常見原因
(1)建模樣本選取有誤,如樣本數量太少,選樣方法錯誤,樣本標簽錯誤等,導致選取的樣本數據不足以代表預定的分類規則;
(2)樣本噪音干擾過大,使得機器將部分噪音認為是特征從而擾亂了預設的分類規則;
(3)假設的模型無法合理存在,或者說是假設成立的條件實際并不成立;
(4)參數太多,模型復雜度過高;
(5)對于決策樹模型,如果我們對于其生長沒有合理的限制,其自由生長有可能使節點只包含單純的事件數據(event)或非事件數據(no event),使其雖然可以完美匹配(擬合)訓練數據,但是無法適應其他數據集。
(6)對于神經網絡模型:a)對樣本數據可能存在分類決策面不唯一,隨著學習的進行,,BP算法使權值可能收斂過于復雜的決策面;b)權值學習迭代次數足夠多(),擬合了訓練數據中的噪聲和訓練樣例中沒有代表性的特征。
解決方法
(1)在神經網絡模型中,可使用權值衰減的方法,即每次迭代過程中以某個小因子降低每個權值。
(2)選取合適的停止訓練標準,使對機器的訓練在合適的程度;
(3)保留驗證數據集,對訓練成果進行驗證;
(4)獲取額外數據進行交叉驗證;
(5)正則化,即在進行目標函數或代價函數優化時,在目標函數或代價函數后面加上一個正則項,一般有L1正則與L2正則等。
首先,分類器本質上是一個數學優化問題機器學習防止過擬合,用最常見的最小二乘擬合舉例,優化目標如下:
「對于所有樣本點機器學習防止過擬合,擬合函數在樣本點處的函數值和樣本點處實際的函數值之差的平方和最小」
顯然這是一個均方誤差最?。∕SE)準則。如果擬合函數足夠好,那么這個函數值為零。
現在我們換一種思路,假使一定要讓MSE準則為零,可以得到:
1、線性函數只能表達直線上的樣本點,因此樣本點不在同一條直線上的時候,上面的MSE準則函數值一定嚴格大于零。因此想讓這個函數等于零,樣本點至多不超過兩個(暫不考慮解不存在的奇異情況);
2、對于任意三個點,使用二次函數能夠保證MSE準則等于零(包括三點共線的退化情況);
......
n、對于任意多個點,總能找到一個足夠高次數的多項式,使得對于所有點的MSE準則函數為零。
我們稱上述擬合效果為一個給定階次多項式的「表達能力」。
實際上在擬合過程中,多項式的表達能力并非越強越好。因為MSE準則只關注樣本點處的擬合誤差,因此非常強的表達能力會使得樣本點之外的函數值遠遠偏離期望的目標,反而降低分類器的性能。