機器學習過度擬合問題一些原因

2021-07-10 17:53:08 字數 2200 閱讀 7465

這幾天在訓練乙個文字處理的機器學習演算法,使用支援向量機和決策樹演算法在訓練集上的資料的準確度特別高,但是在測試集上的資料的準確度確很低,於是陷入過度擬合的煩惱中,查詢資料發現一些多度擬合的看法。仔細想想確實在訓練時存在一些問題,第一:輸入變數多,由於缺乏對問題的根本認識,使用了很多無關變數,這個問題打算從其它途徑先認識變數和問題的關係;第二:資料的雜訊可能是比較大,沒有考慮到關鍵的特徵和資訊。下面的幾段文字是一些關於多度擬合的認識:

過度擬合(overfitting)是指資料模型在訓練集裡表現非常滿意,但是一旦應用到真實業務實踐時,效果大打折扣;換成學術化語言描述,就是模型對樣本資料擬合非常好,但是對於樣本資料外的應用資料,擬合效果非常差。在我們資料分析挖掘業務實踐中,就是「模型搭建時表現看上去非常好,但是應用到具體業務實踐時,模型效果顯著下降,包括準確率、精度、效果等等顯著下降」。

我自己見識有限,目光短淺,無法窮舉主要的原因和避免的方法,只能班門弄斧,拋磚引玉,說說我自己的一孔之見了,期待各位的指正和增補,我給各位獻醜了。

過擬合的第乙個原因,就是建模樣本抽取錯誤,包括(但不限於)樣本數量太少,抽樣方法錯誤,抽樣時沒有足夠正確考慮業務場景或業務特點,等等導致抽出的樣本資料不能有效足夠代表業務邏輯或業務場景;

過擬合的第二個原因,就是樣本裡的噪音資料干擾過大,大到模型過分記住了噪音特徵,反而忽略了真實的輸入輸出間的關係;

過擬合的第三個原因,就是在決策樹模型搭建中,如果我們對於決策樹的生長沒有合理的限制和修剪的話,決策樹的自由生長有可能每片葉子裡只包含單純的事件資料(event)或非事件資料(no event),可以想象,這種決策樹當然可以完美匹配(擬合)訓練資料,但是一旦應用到新的業務真實資料時,效果是一塌糊塗。

過擬合的第四個原因,就是建模時的「邏輯假設」到了模型應用時已經不能成立了。任何**模型都是在假設的基礎上才可以搭建和應用的,常用的假設包括:假設歷史資料可以推測未來,假設業務環節沒有發生顯著變化,假設建模資料與後來的應用資料是相似的,等等。如果上述假設違反了業務場景的話,根據這些假設搭建的模型當然是無法有效應用的。

過擬合的第五個原因,就是建模時使用了太多的輸入變數,這跟上面第二點(噪音資料)有些類似,資料探勘新人常常犯這個錯誤,自己不做分析判斷,把所有的變數交給軟體或者機器去「撞大運」。須知,乙個穩定優良的模型一定要遵循建模輸入變數「少而精」的原則的。

上面的原因都是現象,但是其本質只有乙個,那就是「業務理解錯誤造成的」,無論是抽樣,還是噪音,還是決策樹,神經網路等等,如果我們對於業務背景和業務知識非常了解,非常透徹的話,一定是可以避免絕大多數過擬合現象產生的。因為在模型從確定需求,到思路討論,到搭建,到業務應用驗證,各個環節都是可以用業務敏感來防止過擬合於未然的。

入世,出世,都是一樣的「道」,所謂「道」從來不離開我們半步,只是看我們自身是否足夠清淨,足夠醒悟,足夠真實而已。佛法有八萬四千法門,但是這些林林總總的都是不同的方便路徑,歸根結底,佛法的根本只是「認識我們與生俱來的本來面目,真如自性」而已。

過擬合的產生,原因種種,不一而足,但是這種分類和剖析只是人為的方便而已,防止過擬合的終極思路就是真正透徹理解業務背景和業務邏輯,有了這個根本,我們一定可以正確抽樣,一定可以發現排除雜訊資料,一定可以在決策樹、神經網路等演算法中有效防止過擬合產生的。

當然,除了上面「業務透徹了解」這個根本外,也有一些技術層面的方法來防止過擬合的產生,雖然是「術」的層面,但是很多人熱衷於這些技巧,所以,在這裡也順便列舉如下:

最基本的技術手段,就是合理、有效抽樣;包括分層抽樣,過抽樣,等等,用不同的樣本去檢驗模型;

另外,事前準備幾個不同時間視窗,不同範圍的測試資料集、驗證資料集,把模型在不同的資料集裡分別「交叉檢驗」,是目前業界防止過擬合的最常用的手段了;

第三,建模時目標觀測值的數量太少,如何分割訓練集和驗證集的比例,需要建模人員靈活掌握;

第四,如果資料太少的話,謹慎使用神經網路模型,只有足夠多的資料的情況下,神經網路模型才可以有效防止過擬合的產生。並且,使用神經網路時,一定要事先有效篩選輸入變數,千萬不能一股腦把所有變數放進去。

說一千,道一萬,上面的文字都只是文字而已,如何防止過擬合,這個最終只能靠你在實踐中自己去體會,去摸索,去感覺。這個世界上,把佛法,佛學掛在嘴邊的人比比皆是,少有人能真正「信、解、行、證」,所以成佛作祖在我們這個時代實在是太稀有太罕見了。我自己也慚愧至極,羅里囉嗦,胡說八道總結了這些過擬合的原因和防止對策,但是我自己又對資料探勘實踐應用了解多少呢?我又有什麼資格在這裡夸夸其談呢?我這幾天一直在思考「網際網路行業資料化運營的桎梏」,在總結種種資料化運營效果不好的原因時,也忘記了「過擬合」這個技術層面,可見我也只會嘴上夸夸其談,行動上沒有半點功夫,我對自己充滿了鄙視。

請和我一起學習機器學習演算法(過度擬合問題)

所有的機器學習需要的能力都不是針對標籤已知的樣本進行判別決策的能力,而是正對未知樣本能夠正確 的能力,但是在我們的模型學習過程中,會出現一些過猶不及的現象。過度擬合 overfitting 實際上是為了盡可能的減小訓練集的誤差,從而導致模型過度複雜,泛化能力下降的情況。所謂泛化能力,指的就是對未知樣...

機器學習筆記 過度擬合與正則化

注 本文為學習筆記,描述與截圖多來自課件和百科,學習 為 我們的 模型可能會出現如下三種情況 第一種情況 如第乙個圖形所示,模型為直線,即 第二種情況 如第二個圖形所示,新增了乙個特徵變數x2,這時 第三種情況 如第三個圖形所示,新增了多個特徵變數,一共有5階多項式 左邊的圖顯示了乙個擬合不足的例項...

過擬合和欠擬合的一些問題

三 產生過擬合原因 四 解決過擬合方法 圖一 欠擬合 模型擬合程度不高,資料距離擬合曲線較遠,或指模型沒有很好地捕捉到資料特徵,不能夠很好地擬合資料。圖二 正常擬合 圖三 過擬合 模型擬合度好過頭了。a.根本原因 特徵維度過少,模型過於簡單,導致擬合的函式無法滿足訓練集,誤差較大 b.解決方法 增加...