【机器学习】数据不平衡问题都怎么解?
作者?|?Chilia????
整理?|?NewBeeNLP
本文主要討論兩種不平衡問題。
一是數據的類別本來就不平衡,比如在廣告CTR預估中,可能90%的廣告都不會被點擊,只有一少部分被點擊;
二是由于誤分類cost的不對稱性(asymmetric cost),例如把non-spam 分成spam的代價要遠大于把spam分成non-spam。
在這篇文章中,我將介紹兩大類方法:一是通過采樣而改變數據集,二是修改訓練策略。
1. 從數據層面解決 – 重采樣 (Resampling)
1.1 隨機欠采樣(Random Under-Sampling)
通過隨機刪除多數類別的樣本來平衡類別分布。
好處:
當訓練數據集很大時,可以通過減少訓練數據樣本的數量來幫助改善運行時間和存儲問題
缺點:
丟棄可能有用的信息
隨機欠采樣選擇的樣本可能是有偏差的樣本, 它不會是整體分布的準確代表。因此,可能導致實際在測試集上的結果不準確
1.2 隨機重采樣(Random Over-Sampling)
通過「隨機重復取少數類別的樣本」來平衡類別分布。
好處
與欠采樣不同,此方法不會導致信息丟失。此方法優于隨機欠采樣
缺點
重復取少數類別的樣本,因此增加了過擬合的可能性。
1.3 Ensemble 采樣
類似bagging的思想,有多個基學習器,每個基學習器都抽取一部分majority class,并且使用全部的minority class。這樣,每個majority樣本都能夠被利用上,不會有信息的損失。
1.4 合成少數類過采樣技術 (Synthetic Minority Over-sampling Technique, SMOTE)
此方法用來解決直接復制少數類樣本導致的過擬合問題。SMOTE算法的基本思想是對少數類樣本進行分析并根據少數類樣本人工合成新樣本添加到數據集中。
該算法的模擬過程采用了KNN技術,模擬生成新樣本的步驟如下:
計算出每個少數類樣本的K個近鄰;
從K個近鄰中隨機挑選N個樣本進行隨機線性插值,從而構造新的少數類樣本;
將新樣本與原數據合成,產生新的訓練集;
2 從算法層面解決
2.1 改變loss的權重
重采樣方法改變了數據集,可能導致數據集變得太大,或者丟棄了一些信息。所以,有沒有一種方法能夠從算法層面解決類別不平衡問題呢?
實際上,可以通過改變loss的方法來實現。對分類器的小類樣本數據增加loss權值,降低大類樣本的權值,從而使得分類器將重點集中在小類樣本身上。具體做法就是,在訓練分類器時,若分類器將小類樣本分錯時額外增加分類器一個小類樣本分錯代價,這個額外的代價可以使得分類器更加“關心”小類樣本。
可以讓majority的權重為1,minority權重為3樹模型2.2 boosting 方法
在boosting方法中,分類器每一步會關心上一步分錯的那些樣本,這樣分類器就會越來越關心少數類樣本,把它們的權值提高。久而久之,就能夠將少數樣本正確分類了。
三句話不離本行
在搜索、推薦、廣告的實際場景下,怎么選擇正負樣本也是大有講究。
對于召回階段,一般初始的訓練集是只有正樣本的。什么樣的樣本被選作正樣本,這個標準在每個公司都不一樣。
例如,facebook在其最新的文章 Que2Search: Fast and Accurate Query and Document Understanding for Search at Facebook中提到,他們選擇正樣本標準十分嚴格:對于一個query,只有當用戶點擊了一個product,進去和賣家聊天,賣家還回復了,這才算一個正樣本。
但是在其另外一篇文章Embedding-based Retrieval in Facebook Search中卻提到,其實可以把用戶點擊的商品都算作正樣本。這是因為其實召回可以看作排序階段的一個近似,我們只需要快速的把和query相關的物品都拿出來。
那么召回階段的負樣本怎么來呢?在實際的數據流場景中,一般是用in-batch采樣,但是這樣有一個問題:越熱門的商品,越容易出現在batch中,所以越容易成為負樣本。這樣,就對熱門商品施加了不必要的懲罰。
為了解決這個問題,Google在Sampling-Bias-Corrected Neural Modeling for Large Corpus Item Recommendations一文中提出streaming frequency estimation方法。其實還有一些負采樣方法,比如難負例采樣。還可以把in-batch采樣與隨機負采樣相結合。這里的門道很多,之后會專門出專題介紹。
對于排序階段,一般都是多目標預測,目標有是否點擊、是否關注、是否購買、觀看時長、評分等等(engagement & satisfaction),負樣本就是那些曝光未點擊的,由于曝光的商品本來就比較少了(相對召回階段而言),所以數據不平衡沒有那么嚴重。
本文參考:
哥倫比亞大學2021fall COMS 4995課件
-?END?-
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載黃海廣老師《機器學習課程》視頻課黃海廣老師《機器學習課程》711頁完整版課件本站qq群955171419,加入微信群請掃碼:
總結
以上是生活随笔為你收集整理的【机器学习】数据不平衡问题都怎么解?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: QQ浏览器如何修改截屏快捷键?QQ浏览器
- 下一篇: 如何在金山毒霸软件里安装腾讯视频