Classification

如何通過傾斜的課程提高 F1 分數?

  • April 20, 2017

我有一個大約 40K 樣本的數據集,其中 39.6K 樣本屬於目標類 0,400 個樣本屬於類 1。

我嘗試了幾種分類算法,沒有過多的微調,只是為了了解基線性能如何。他們都得到了大約 99% 的準確度分數,這正是 0 類樣本與總樣本之間的比率。人工欠採樣只是將準確度分數降低到與新數據集相同的比率,因此在這方面沒有任何改進。

F1 分數真的很差,因為我遇到了可怕的 II 類錯誤:基本上,算法只是猜測所有內容都屬於 0 類。對於我嘗試過的一些模型,它實際上預測所有內容都屬於 0 類:誤報是0(因為沒有預測到正樣本)和假陰性確實很多(因為預測實際的正樣本是負的)。AUC-ROC 約為 50%(糟糕),並且對模型進行加權以考慮類的偏度並沒有帶來任何改善。

我嘗試做一些特徵工程(在一些無監督聚類之上集成監督分類),但幾乎沒有運氣。

您對如何解決此類問題/如何診斷阻止預測器準確的潛在問題有任何建議嗎?或者我應該以此證明,鑑於我的數據集,屬於第 1 類只是隨機的(所以我應該收集更多特徵)?

旁注:我想從另一邊拿它,即。異常檢測,但我不確定這是否是正確的方法。

我處理過的大多數分類問題本質上都是相似的,所以大類不平衡是很常見的。

目前尚不清楚您是否使用訓練驗證集來構建和微調模型。交叉折疊驗證通常是首選,因為它可以提供更可靠的模型性能估計。

F1 分數是一個很好的分類性能指標,我發現它比 AUC-ROC 指標更重要。最好使用與您要解決的實際問題相匹配的性能度量。

如果無法訪問數據集,我無法給出準確的指示;所以我建議幾個方向來解決這個問題並幫助提高 F1 分數:

  1. 使用更好的功能,有時領域專家(特定於您要解決的問題)可以提供相關的指導,從而帶來顯著的改進。
  2. 使用更好的分類算法和更好的超參數。
  3. 對少數類進行過採樣,和/或對多數類進行欠採樣以減少類不平衡。
  4. 對少數類使用更高的權重,儘管我發現過度抽樣比使用權重更有效。
  5. 選擇一個最佳截止值,將算法輸出的連續值類概率轉換為類標籤。這與良好的 AUC 指標一樣重要,但經常被忽視。不過需要注意的是:用戶應通過評估相關權衡來指導截止值的選擇。

引用自:https://stats.stackexchange.com/questions/274807

comments powered by Disqus