99%的人都会用错或者不会看的N折验证
? ? ?做實際比賽和機器學習項目,?很多朋友都會經常遇到線下線上不一致的情況,排除一些特殊的情況,例如問題沒法預測,不存在潛在pattern的情況等,我敢說99%的人都不會看N折驗證的結果。
? ???沒錯,是真的!
? ? ?你可能會吐槽我,等等,你先看我舉一個簡單的例子。
? ? ?假設我有一個項目,例如最近的“智慧海洋建設”的比賽,它的評估指標是三個類的F1的平均,這個時候我們有兩個模型,都使用相同的參數,每隔50次的展示一下結果,
? ? ?其中第一個模型的線下驗證結果為:
[50] valid_0's f1_macro: 0.92763 [100] valid_0's f1_macro: 0.931709 [150] valid_0's f1_macro: 0.934416 [200] valid_0's f1_macro: 0.931428 [250] valid_0's f1_macro: 0.927119 [300] valid_0's f1_macro: 0.927119 Early stopping, best iteration is: [150]??valid_0's?f1_macro:?0.934416?
? ? 其中第二個模型的線下驗證結果為:
[50] valid_0's f1_macro: 0.92763 [100]??valid_0's?f1_macro:?0.931709 [150]??valid_0's?f1_macro:?0.932416 [200]??valid_0'?s?f1_macro:?0.933428 [250]??valid_0's?f1_macro:?0.932119 [300]??valid_0's?f1_macro:?0.932119 [350]??valid_0's?f1_macro:?0.931119 Early stopping, best iteration is: [222] valid_0's f1_macro: 0.93390? ? 99%的朋友在碰到這種情況的時候,會直接選擇第一個模型,因為它能達到的f1_macro可以達到0.934416,而幾乎不會去看后面的結果,如果我們細細看的話,我們就會發現,第二個模型相較于第一個模型穩定很多,很多時候提交第二個模型的結果時,線上成績也會相對好一些,為什么呢?
? ? 本質問題是,我們在驗證的時候已經作弊了!為什么呢?
? ? 因為我們是在已知label的情況下尋找最佳停止的位置,也就是說我們的停止的位置就是在其他參數固定下最佳的停止迭代次數,這在實際情況下怎么可能呢?
? ? 很多朋友玩比賽的時候肯定會有一種體會,有的時候沒思路,又不想浪費時間,就會嘗試用不同的迭代次數來提交,尤其和上面第一種情況一樣,不同的迭代次數影響還很大,這其實就是線下驗證作弊了,等于說提交了300多次的結果并且得到了實時的反饋,然后你選擇了最佳的結果作為你的驗證結果,這在真實比賽中完全不可能有那么多的提交機會。而第二個模型的結果在很多次提交中都比第一個結果的要好,尤其是后面每次迭代的結果基本都比第一個結果的分數高。所以大概率第二個結果的提交會比第一個好,這也是為什么實踐中用第二個模型的預測結果提交更靠譜的原因。
? ? 這個時候很多朋友肯定會說,我實戰中基本都是五折提升了,線上就提升了的啊,這個沒太大問題,畢竟上面描述的兩種驗證結果只有指標相對敏感的時候容易出現一點,很多時候還是很少會出現這種情況的,這也是為什么大多數時候大家五折提升了,線上往往也會提升的原因。但是很多人也發現了,在海洋比賽中,五折的效果比10折或者8折差了很多,10折或者8折在初賽或者復賽的時候90%的概率比五折的效果要好,為什么呢?
因為用了更多的數據
因為運氣
好像在這題中是這樣的
這是我發現的tricks
? 其實這個很容易,本來我們的驗證框架不對,只是很多時候我們發現相關性很高(五折線下漲,線上大概率也漲),所以就懶得尋找最優N了,那么怎么才能糾正這種驗證方式呢?
? ?-- 改成兩層的!
? ? 其中第一層和平時一樣,只是第二層模型由之前的單模變成了N折的,這個時候第一層N折訓練得到的N折模型再對驗證集預測得到的結果,這個時候在看最終五折的結果,就會一目了然。此外,你還會發現另外一個明顯的優點,驗證的結果線上和線下的gap相較于之前的也變小了。
? ?拿海洋賽來舉例,線下按上面的方法一試就可以發現了7-10折的效果線下在第二種驗證方式的情況下相較于五折基本每次都要好一些。
-END-
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習在線手冊深度學習在線手冊AI基礎下載(pdf更新到25集)本站qq群1003271085,加入微信群請回復“加群”獲取一折本站知識星球優惠券,請回復“知識星球”喜歡文章,點個在看 與50位技術專家面對面20年技術見證,附贈技術全景圖
總結
以上是生活随笔為你收集整理的99%的人都会用错或者不会看的N折验证的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微软为什么要“杀死”小娜?
- 下一篇: 喜大普奔!Github 移动端上架!