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