
不論你的目標職位是否有「資料」這個字,了解資料分析的基本概念和常見錯誤,都是重要的職場即戰力。本篇我們介紹 overfitting 這類型的資料分析偏誤。了解錯誤的成因,知道如何避免,才能讓『資料』發揮最大的作用。
我們前篇介紹過 Underfitting 與誤用線性關係。與之相反,overfitting 是在建立模型時,因為考屢因素過多,模型太複雜所產生的偏誤。這個「考慮因素過多」,大部分情況是對應「樣本數太少」而言。例如,我們觀察了一些「天鵝」,發現天鵝都是白色的,這就是一種 overfitting 的錯誤。實際上如果我們觀察的樣本數真的夠多(而且夠廣),就會發現澳洲有黑天鵝,而「顏色」就是那個過多的因素。
複雜的模型一定會『表現更好』
從數學原理而言,更複雜的模型機乎一定會看起來「表現更好」。任意兩個點一定可以用一條直線連起來,任意三個點可以用一個平面連起來。而複雜的模型常常可以包含簡單模型。不加驗證,很容易導致我們的結論偏向過於過於複雜的模型。
取樣的問題:假重複(Pseudo-replication)
我們說 overfitting 是『樣本數不夠』,但是樣本不光是數量的問題,還要具有全面代表性(對於問的問題而言)。如果我們想要了解『所有用戶』的行為,就不能針對『付費用戶』進行調查,這樣取樣再多也沒有用。
統計上,我們可以算出需要多少樣本數才能驗證一個模型,但是如果樣本來自於無效的『假重複』(例如在同一個病人身上抽了好幾次血,這種『重複』是沒有統計上的效力的),就會造成統計上的解讀錯誤(通常是誇大統計顯著性)。
如何避免 Overfitting
樣本外:交叉驗證
發現 Overfitting 錯誤最基本的方式,就是樣本外的驗證(例如在澳洲發現黑天鵝)。在實際操作上,我們可以藉由『交叉驗證』(cross validation)的方式來確認模型的效力。保留一部分樣本,不用於建模,然後觀察模型在這些樣本上的表現。
如果模型在訓練的時候表現很好,而碰到新的、沒見過的樣本時表現就變得很糟,這就是 Overfitting 的信號。(訓練時就表現很糟,則有 underfitting 的可能)
舉例來說:如果有個學生,在做考古題組成的小考時都可以考很高分,但是碰到大考(通常會有新題目)就掉鍊,那很有可能是他對考古題 overfitting 了。(可能是題目做太多,而沒有真正了解原理)
建立與挑選模型
在建立、挑選模型時,也可以使用統計上的『正則化』(regularization),控制過多參數的問題。Regularization 可以想像是針對參數的『處罰』,在模型評估的分數上『扣分』的機制。
扣分可以發生在參數值上(如:lasso, ridge)或是直接以參數個數,一個參數扣幾分(如:AIC)的方式進行。這些機制也可以最為挑選參數的參考:例如:Ridge 方法會迫使『看起來不重要的』參數值變成很小。
(機器學習、深度學習領域有更多 regularization 方法,例如 drop-out,不在本篇討論範圍)
回歸基本常識
最後,發現 overfitting 時還是要回歸專業和基本常識(business sense and common sense),不能只看冷冰冰的統計數值。
參數太多時,應該保留哪些,去掉哪些,是否加入複雜的多次項(例如:平方、三次方),模型跑出來的結果只能作為參考,還要看看那個參數是否有道理。例如:信用末兩碼為『39』的線上交易金額平均較高,可能只是個巧合。點擊率如果與用戶上線天數的四次方有關,overfitting 的機率也比較高。已知缺少哪一方面的樣本時,也可以適當的以人工增加樣本 (augmentation)來彌補。
Overfitting: 如何避免過於複雜的模型 有 “ 7 則迴響 ”