【机器学习基础】八种应对样本不均衡的策略
1 什么是非均衡
2 10種解決辦法
2.1 重采樣(六種方法)
2.2 調(diào)整損失函數(shù)
2.3 異常值檢測框架
2.4 二分類變成多分類
2.5 EasyEnsemble
3 為什么樹模型不擔(dān)心這個問題
1 什么是非均衡
分類(classification)問題是數(shù)據(jù)挖掘領(lǐng)域中非常重要的一類問題,目前有琳瑯滿目的方法來完成分類。然而在真實的應(yīng)用環(huán)境中,分類器(classifier)扮演的角色通常是識別數(shù)據(jù)中的“少數(shù)派”,比如:
銀行識別信用卡異常交易記錄
垃圾郵件識別
檢測流水線識別殘次品
病情監(jiān)測與識別等等
在這樣的應(yīng)用環(huán)境下,作為少數(shù)派的群組在數(shù)據(jù)總體中往往占了極少的比例:絕大多數(shù)的信用卡交易都是正常交易,八成以上的郵件都是正常郵件,大多數(shù)的流水線產(chǎn)品是合格產(chǎn)品,在進行檢查的人群中特定疾病的發(fā)病率通常非常低。
如果這樣的話,假設(shè)99%的正樣本+1%的負樣本構(gòu)成了數(shù)據(jù)集,那么假設(shè)模型的預(yù)測結(jié)果全是正,這樣的完全沒有分辨能力的模型也可以得到99%的準確率。這個按照樣本個數(shù)計算準確率的評價指標叫做——Accuracy.
因此我們?yōu)榱吮苊膺@種情況,最常用的評價指標就是F-score,Precision&Recal,Kappa系數(shù)。
【F-Score和Kappa系數(shù)已經(jīng)在歷史文章中講解過啦】
2 10種解決辦法
解決辦法主要有下面10種不同的方法。
重采樣resampling
上采樣:簡單上采樣,SMOT,ADASYN
下采樣:簡單下采樣,聚類Cluter,Tomek links
調(diào)整損失函數(shù)
異常值檢測框架
二分類變成多分類
EasyEnsemble
2.1 重采樣(四種方法)
重采樣的目的就是讓少的樣本變多,或者是讓多的樣本變少。下圖很形象的展示出這個過程:
【簡單上采樣】
就是有放回的隨機抽取少數(shù)量的樣本,飯后不斷復(fù)制抽取的隨機樣本,直到少數(shù)量的樣本與多數(shù)量的樣本處于同一數(shù)量級。但是這樣容易造成過擬合問題。
為什么會造成過擬合呢? 最極端的例子就是把一個樣本復(fù)制100次,這樣就有了一個100樣本的數(shù)據(jù)庫。模型訓(xùn)練出來很可能得到100%的正確率,但是這模型真的學(xué)到東西了嗎?
【SMOTE】
SMOT:Synthetic Minority Over-sampling Technique.(翻譯成中文,合成最少個體上采樣技術(shù)?)
核心思想是依據(jù)現(xiàn)有的少數(shù)類樣本人為制造一些新的少數(shù)類樣本 SMOTE在先用K近鄰算法找到K個近鄰,利用這個K個近鄰的各項指標,乘上一個0~1之間的隨機數(shù)就可以組成一個新的少數(shù)類樣本。容易發(fā)現(xiàn)的是,就是SMOTE永遠不會生成離群樣本
【ADASYN】
ADASYN:Adaptive Synthetic Sampling Approach(自適應(yīng)合成樣本方法)
ADASYN其實是SMOTE的一種衍生技術(shù),相比SMOT在每一個少數(shù)類樣本的周圍隨機的創(chuàng)建樣本,ADASYN給每一個少數(shù)類的樣本分配了權(quán)重,在學(xué)習(xí)難度較高的少數(shù)類樣本周圍創(chuàng)建更多的樣本。在K近鄰分類器分類錯誤的那些樣本周圍生成更多的樣本,也就是給他們更大的權(quán)重,而并不是隨機0~1的權(quán)重。
這樣的話,就好像,一個負樣本周圍有正樣本,經(jīng)過這樣的處理后,這個負樣本周圍會產(chǎn)生一些相近的負樣本。這樣的弊端也是顯而易見的,就是對離群點異常敏感。
【簡單下采樣】這個很簡單,就是隨機刪除一些多數(shù)的樣本。弊端自然是,樣本數(shù)量的減少,刪除了數(shù)據(jù)的信息
【聚類】這個是一個非常有意思的方法。我們先選取樣本之間相似度的評估函數(shù),比方說就用歐氏距離(可能需要對樣本的數(shù)據(jù)做歸一化來保證不同特征的同一量綱)。
方法1:假設(shè)有10個負樣本和100個正樣本,對100個正樣本做kmeans聚類,總共聚10個類出來,然后每一個類中心作為一個正樣本。
方法2:使用K近鄰,然后用K個樣本的中心來代替原來K個樣本。一直這樣做,直到正樣本的數(shù)量等于負樣本的數(shù)量。
【Tomek links】
這個不知道咋翻譯
Tomek links是指相反類樣本的配對,這樣的配對距離非常近,也就是說這樣的配對中兩個樣本的各項指標都非常接近,但是屬于不同的類。如圖所示,這一方法能夠找到這樣的配對,并刪除配對中的多數(shù)類樣本。經(jīng)過這樣的處理,兩類樣本之間的分界線變得更加清晰,使少數(shù)類的存在更加明顯。
下圖是操作的過程。
2.2 調(diào)整損失函數(shù)
調(diào)整損失函數(shù)的目的本身是為了使模型對少數(shù)量樣本更加敏感。訓(xùn)練任何一個機器學(xué)習(xí)模型的最終目標是損失函數(shù)(loss function)的最小化,如果能夠在損失函數(shù)中加大錯判少數(shù)類樣本的損失,那么模型自然而然能夠更好地識別出少數(shù)類樣本。
比較著名的損失函數(shù)就是目標檢測任務(wù)中的focal loss。不過在處理其他任務(wù)的時候,也可以人為的增加少數(shù)樣本錯判的損失。
2.3 異常值檢測框架
將分類問題轉(zhuǎn)換成為一個異常值監(jiān)測框架
這個異常值檢測框架又是一個非常大的體系,有很多不同的模型,比方說:異常森立等。之后會專門講講這個體系的模型的。
(小伙伴關(guān)注下公眾號唄,不迷路呀)
2.4 二分類變成多分類
對于不均衡程度較低的數(shù)據(jù),可以將多數(shù)量樣本進一步分為多個組,雖然二分類問題被轉(zhuǎn)化成了一個多分類問題,但是數(shù)據(jù)的不平衡問題被解決,接下來就可以使用多分類中的一對多(OVA)或一對一(OVO)的分類方式進行分類。
就是把多數(shù)類的樣本通過聚類等方法,劃分成不同的類別。這樣2分類任務(wù)就變成了多分類任務(wù)。
2.5 EasyEnsemble
另外一種欠采樣的改進方法是 EasyEnsemble ,它將多數(shù)樣本劃分成若 N個集合,然后將劃分過后的集合與少數(shù)樣本組合,這樣就形成了N個訓(xùn)練集合,而且每個訓(xùn)練都正負樣本均衡,并且從全局來看卻沒有信息丟失。
3 為什么樹模型不擔(dān)心這個問題
要解釋這個問題,首先要理解這兩個算法擬合樣本的本質(zhì)。
邏輯回歸的算法,采用的是經(jīng)驗風(fēng)險最小化作為模型的學(xué)習(xí)準則,即,他的優(yōu)化目標是最小化模型在訓(xùn)練集上的平均損失。 具體而言,邏輯回歸采用的最大后驗概率的策略,他的目標是使得訓(xùn)練集總體的后驗概率最大。因此這種算法天然地會將關(guān)注點更多地放在多數(shù)類的擬合情況下,畢竟多數(shù)類別的分類正確與否,更為影響最終整體的損失情況。 而在樣本不均衡的建模任務(wù)中,我們常常其實更關(guān)注的是少數(shù)類別的分類正確情況。這就導(dǎo)致了我們實際的建模目標和模型本身的優(yōu)化目標是不一致的。因此,在我們的感覺之中就會認為邏輯回歸(包含其他使用類似優(yōu)化函數(shù)的模型)對樣本不均衡比較敏感。
而另一方面,樹模型采用的更新策略則完全不同,他的優(yōu)化目標是最大化分叉以后的信息增益的。為了做到這一點,樹模型天然地希望分叉以后,每個節(jié)點的樣本更“純”,從而增大增益。在這種情況下,即使樣本有偏,模型也會對這個類別給予足夠的關(guān)注度,因此受樣本有偏的影響就大大減少。
- END -往期精彩回顧適合初學(xué)者入門人工智能的路線及資料下載機器學(xué)習(xí)及深度學(xué)習(xí)筆記等資料打印機器學(xué)習(xí)在線手冊深度學(xué)習(xí)筆記專輯《統(tǒng)計學(xué)習(xí)方法》的代碼復(fù)現(xiàn)專輯 AI基礎(chǔ)下載機器學(xué)習(xí)的數(shù)學(xué)基礎(chǔ)專輯獲取一折本站知識星球優(yōu)惠券,復(fù)制鏈接直接打開:https://t.zsxq.com/yFQV7am本站qq群1003271085。加入微信群請掃碼進群:總結(jié)
以上是生活随笔為你收集整理的【机器学习基础】八种应对样本不均衡的策略的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Python】全网最新最全Pyecha
- 下一篇: 【算法基础】十大经典排序算法(动图)