這幾天在訓練乙個文字處理的機器學習演算法,使用支援向量機和決策樹演算法在訓練集上的資料的準確度特別高,但是在測試集上的資料的準確度確很低,於是陷入過度擬合的煩惱中,查詢資料發現一些多度擬合的看法。仔細想想確實在訓練時存在一些問題,第一:輸入變數多,由於缺乏對問題的根本認識,使用了很多無關變數,這個問題打算從其它途徑先認識變數和問題的關係;第二:資料的雜訊可能是比較大,沒有考慮到關鍵的特徵和資訊。下面的幾段文字是一些關於多度擬合的認識:
過度擬合(overfitting)是指資料模型在訓練集裡表現非常滿意,但是一旦應用到真實業務實踐時,效果大打折扣;換成學術化語言描述,就是模型對樣本資料擬合非常好,但是對於樣本資料外的應用資料,擬合效果非常差。在我們資料分析挖掘業務實踐中,就是「模型搭建時表現看上去非常好,但是應用到具體業務實踐時,模型效果顯著下降,包括準確率、精度、效果等等顯著下降」。
我自己見識有限,目光短淺,無法窮舉主要的原因和避免的方法,只能班門弄斧,拋磚引玉,說說我自己的一孔之見了,期待各位的指正和增補,我給各位獻醜了。
過擬合的第乙個原因,就是建模樣本抽取錯誤,包括(但不限於)樣本數量太少,抽樣方法錯誤,抽樣時沒有足夠正確考慮業務場景或業務特點,等等導致抽出的樣本資料不能有效足夠代表業務邏輯或業務場景;
過擬合的第二個原因,就是樣本裡的噪音資料干擾過大,大到模型過分記住了噪音特徵,反而忽略了真實的輸入輸出間的關係;
過擬合的第三個原因,就是在決策樹模型搭建中,如果我們對於決策樹的生長沒有合理的限制和修剪的話,決策樹的自由生長有可能每片葉子裡只包含單純的事件資料(event)或非事件資料(no event),可以想象,這種決策樹當然可以完美匹配(擬合)訓練資料,但是一旦應用到新的業務真實資料時,效果是一塌糊塗。
過擬合的第四個原因,就是建模時的「邏輯假設」到了模型應用時已經不能成立了。任何**模型都是在假設的基礎上才可以搭建和應用的,常用的假設包括:假設歷史資料可以推測未來,假設業務環節沒有發生顯著變化,假設建模資料與後來的應用資料是相似的,等等。如果上述假設違反了業務場景的話,根據這些假設搭建的模型當然是無法有效應用的。
過擬合的第五個原因,就是建模時使用了太多的輸入變數,這跟上面第二點(噪音資料)有些類似,資料探勘新人常常犯這個錯誤,自己不做分析判斷,把所有的變數交給軟體或者機器去「撞大運」。須知,乙個穩定優良的模型一定要遵循建模輸入變數「少而精」的原則的。
上面的原因都是現象,但是其本質只有乙個,那就是「業務理解錯誤造成的」,無論是抽樣,還是噪音,還是決策樹,神經網路等等,如果我們對於業務背景和業務知識非常了解,非常透徹的話,一定是可以避免絕大多數過擬合現象產生的。因為在模型從確定需求,到思路討論,到搭建,到業務應用驗證,各個環節都是可以用業務敏感來防止過擬合於未然的。
入世,出世,都是一樣的「道」,所謂「道」從來不離開我們半步,只是看我們自身是否足夠清淨,足夠醒悟,足夠真實而已。佛法有八萬四千法門,但是這些林林總總的都是不同的方便路徑,歸根結底,佛法的根本只是「認識我們與生俱來的本來面目,真如自性」而已。
過擬合的產生,原因種種,不一而足,但是這種分類和剖析只是人為的方便而已,防止過擬合的終極思路就是真正透徹理解業務背景和業務邏輯,有了這個根本,我們一定可以正確抽樣,一定可以發現排除雜訊資料,一定可以在決策樹、神經網路等演算法中有效防止過擬合產生的。
當然,除了上面「業務透徹了解」這個根本外,也有一些技術層面的方法來防止過擬合的產生,雖然是「術」的層面,但是很多人熱衷於這些技巧,所以,在這裡也順便列舉如下:
最基本的技術手段,就是合理、有效抽樣;包括分層抽樣,過抽樣,等等,用不同的樣本去檢驗模型;
另外,事前準備幾個不同時間視窗,不同範圍的測試資料集、驗證資料集,把模型在不同的資料集裡分別「交叉檢驗」,是目前業界防止過擬合的最常用的手段了;
第三,建模時目標觀測值的數量太少,如何分割訓練集和驗證集的比例,需要建模人員靈活掌握;
第四,如果資料太少的話,謹慎使用神經網路模型,只有足夠多的資料的情況下,神經網路模型才可以有效防止過擬合的產生。並且,使用神經網路時,一定要事先有效篩選輸入變數,千萬不能一股腦把所有變數放進去。
說一千,道一萬,上面的文字都只是文字而已,如何防止過擬合,這個最終只能靠你在實踐中自己去體會,去摸索,去感覺。這個世界上,把佛法,佛學掛在嘴邊的人比比皆是,少有人能真正「信、解、行、證」,所以成佛作祖在我們這個時代實在是太稀有太罕見了。我自己也慚愧至極,羅里囉嗦,胡說八道總結了這些過擬合的原因和防止對策,但是我自己又對資料探勘實踐應用了解多少呢?我又有什麼資格在這裡夸夸其談呢?我這幾天一直在思考「網際網路行業資料化運營的桎梏」,在總結種種資料化運營效果不好的原因時,也忘記了「過擬合」這個技術層面,可見我也只會嘴上夸夸其談,行動上沒有半點功夫,我對自己充滿了鄙視。
過度擬合 Over fitting
一 說明 過度擬合是指模型與訓練資料擬合較好,訓練誤差很小或沒有訓練誤差,但不能很好地推廣到不可見資料。或者說在實際的整個資料分布 包含訓練集以外例項 上表現不好時,稱之為該模型存在過度擬合。由於測試學習演算法是否成功在於演算法對於訓練中未見過的資料的 執行能力。因此換句話說,模型的訓練誤差小,泛化...
overfitting 過度擬合 的概念
過適 維基百科 在統計學中,過適現象 英語 overfitting 或稱 過度擬合 是指在調適乙個統計模型時,使用過多引數。對比於可取得的資料總量來說,乙個荒謬的模型模型只要足夠複雜,是可以完美地適應資料。過適一般可以識為違反奧卡姆剃刀原則。當可選擇的引數的自由度超過資料所包含資訊內容時,這會導致最...
過度擬合與正規化線性回歸
過度擬合 over fitting 在擬合資料時,如果要包含每條訓練記錄資料,則很容易產生過度擬合,換句話說,過度擬合現象在特徵變數很多很多時容易產生。如下 圖2所示 解決過度擬合的兩種方法 減少選取特徵變數的數量 reduce number of features 正規化 保留所有特徵變數,但是減...