機器學習是利用模型在訓練集中進行學習,在測試集中對樣本進行預測。模型對訓練集數據的誤差稱為經驗誤差,對測試集數據的誤差稱為泛化誤差。模型對訓練集以外樣本的預測能力稱為模型的泛化能力。
欠擬合(underfitting)和過擬合(overfitting)是模型泛化能力不高的兩種常見原因,都是模型學習能力與數據復雜度不匹配的情況。
欠擬合常常在模型學習能力比較弱,而數據復雜度較高的場景出現,由於模型學習能力不足,不能有效學習數據集的一般規律,導致模型泛化能力較弱
過擬合常常在模型學習能力過強的場景中出現,由於模型學習能力太強,把訓練集中單個樣本的特點都能學習到,並將其作為一般規律,同樣也導致模型泛化能力較弱。
欠擬合在訓練集和測試集上能力都較差,而過擬合則在訓練集能較好學習數據的特征,在測試集上預測能力較差。
產生欠擬合 的原因:
1、模型過於簡單
2、模型特征量過少
欠擬合解決辦法
1、增加新特征,可以考慮加入進特征組合、高次特征,來增大假設空間
2、添加多項式特征,這個在機器學習算法里面用的很普遍,例如將線性模型通過添加二次項或者三次項使模型泛化能力更強
3、減少正則化參數,正則化的目的是用來防止過擬合的,但是模型出現了欠擬合,則需要減少正則化參數
4、使用非線性模型,比如核SVM 、決策樹、深度學習等模型
5、調整模型的容量(capacity),通俗地,模型的容量是指其擬合各種函數的能力
6、容量低的模型可能很難擬合訓練集;使用集成學習方法,如Bagging ,將多個弱學習器Bagging
產生過擬合原因:
1、建模樣本選取有誤,如樣本數量太少,選樣方法錯誤,樣本標簽錯誤等,導致選取的樣本數據不足以代表預定的分類規則
2、樣本噪音干擾過大,使得機器將部分噪音認為是特征從而擾亂了預設的分類規則
3、假設的模型無法合理存在,或者說是假設成立的條件實際並不成立
4、參數太多,模型復雜度過高
5、對於決策樹模型,如果對於其生長沒有合理的限制,其自由生長有可能使節點只包含單純的事件數據(event)或非事件數據(no event),使其雖然可以完美匹配(擬合)訓練數據,但是無法適應其他數據集
6、對於神經網絡模型:對樣本數據可能存在分類決策面不唯一,隨着學習的進行,,BP算法使權值可能收斂過於復雜的決策面;權值學習迭代次數足夠多(Overtraining),擬合了訓練數據中的噪聲和訓練樣例中沒有代表性的特征
過擬合解決辦法:
1、正則化(Regularization)(L1和L2)
2、數據擴增,即增加訓練數據樣本
3、Dropout
4、Early stopping
參考:https://www.cnblogs.com/zhhfan/p/10476761.html