具有強烈不平衡類的二元分類
我有一個(特徵,二進制輸出 0 或 1)形式的數據集,但 1 很少發生,所以只要總是預測 0,我就可以得到 70% 到 90% 之間的準確度(取決於我查看的特定數據)。ML 方法給我的準確度大致相同,我覺得應該有一些標準方法可以應用於這種情況,這將提高明顯預測規則的準確度。
hxd1011 和 Frank 都是正確的 (+1)。本質上,重採樣和/或成本敏感學習是解決數據不平衡問題的兩種主要方法;第三是使用有時可能受類不平衡影響較小的內核方法。讓我強調,沒有靈丹妙藥的解決方案。根據定義,您有一個類別在您的樣本中沒有得到充分代表。
說了上面我相信你會發現算法SMOTE和ROSE非常有用。SMOTE 有效地使用-最近鄰方法排除多數類別的成員,同時以類似的方式創建少數類別的合成示例。ROSE 嘗試使用平滑引導方法創建兩個類的基本分佈的估計值,並對它們進行採樣以用於合成示例。兩者都可以在 R、DMwR 包中的SMOTE和同名包中的 ROSE 中輕鬆獲得。SMOTE 和 ROSE 都會導致訓練數據集小於原始數據集。
我可能會爭辯說,對於不平衡數據的情況,更好(或更差)的指標是使用Cohen 的和/或曲線下的接收器操作特性的面積。Cohen 的 kappa 直接控制預期準確度,AUC 因為它是靈敏度和特異性的函數,曲線對類別比例的差異不敏感。再次注意,這些只是應該與大量鹽一起使用的指標。考慮到在您的案例中正確和錯誤的分類所傳達的收益和成本,您應該理想地使它們適應您的特定問題。我發現查看升力曲線實際上對這個問題很有幫助。無論您的指標如何,您都應該嘗試使用單獨的測試來評估算法的性能;正是因為類不平衡過擬合更有可能,所以樣本外測試至關重要。
最近關於這個問題最受歡迎的論文可能是He 和 Garcia從不平衡數據中學習。它很好地概述了我自己和其他答案中提出的觀點。此外,我相信Max Kuhn 作為插入符號包的一部分提供的關於類不平衡的子採樣的演練是一個很好的資源,可以獲取一個結構示例,說明如何對欠採樣/過採樣以及合成數據創建進行測量互相反對。