機(jī)器學(xué)習(xí)作為數(shù)據(jù)分析的一種重要技術(shù)手段宛蚓,正成為一家企業(yè)實(shí)現(xiàn)數(shù)據(jù)智能的關(guān)鍵嗤详,通過學(xué)術(shù)界和工業(yè)界對(duì)模型和算法的不斷優(yōu)化,通用的模型在部分領(lǐng)域的分類準(zhǔn)確度已經(jīng)超越了人類的水平振湾。但是在信息化和智能化的道路上產(chǎn)生的自然數(shù)據(jù)往往將有用的信息掩藏較深球涛,面對(duì)這樣未經(jīng)科學(xué)方法預(yù)先處理的數(shù)據(jù)即便是強(qiáng)大的神經(jīng)網(wǎng)絡(luò)都難以給出正確的決策,因此在機(jī)器學(xué)習(xí)中數(shù)據(jù)往往扮演著很重要的角色校镐。
我們實(shí)踐獲得的需求中發(fā)現(xiàn)數(shù)據(jù)不均衡是實(shí)際分析數(shù)據(jù)時(shí)最常見的問題之一亿扁,接下來的篇幅中就和大家聊一聊數(shù)據(jù)集不均衡的問題給大家一些實(shí)際分析數(shù)據(jù)的一些建議和啟發(fā)。
問題的定義
數(shù)據(jù)不均衡是指在待分析的數(shù)據(jù)中鸟廓,不同類別的樣本數(shù)量的比例失調(diào)的現(xiàn)象从祝。這種現(xiàn)象高頻的出現(xiàn)在實(shí)際生產(chǎn)和需求中。例如:
1.在信用卡欺詐的案件中引谜,欺詐大約只占據(jù)信用卡業(yè)務(wù)中2%的比例牍陌。
2.電力公司在檢查偷電漏電的事件中,發(fā)生的概率只有4.1%员咽。
3.通過對(duì)硬件I/O口的監(jiān)控實(shí)現(xiàn)判斷硬件的工作狀態(tài)毒涧,通常硬件發(fā)生故障的概率不足0.5%。
類似于上述情況的現(xiàn)象在生產(chǎn)環(huán)境中還會(huì)有很多贝室,并且通常在這樣的問題中我們的關(guān)注點(diǎn)主要集中在數(shù)量較少的那一方契讲。在這樣的數(shù)據(jù)中我們將較少的那一方稱為正樣本。一個(gè)常用的描述描述數(shù)據(jù)不均衡程度的指標(biāo)IR(Imbalance Ratio)如下:
nMaj?分子(Majority)是多數(shù)樣本的數(shù)量滑频,nMin?分母(Minority)是少量樣本的數(shù)量捡偏,通常大家會(huì)很自然的認(rèn)為IR的數(shù)值越大分類器就越難從中學(xué)習(xí)并正確的分類正樣本。然而數(shù)據(jù)的分類的效果其實(shí)和IR的值沒有明顯的依賴關(guān)系峡迷。
下圖中展示了三種擁有同樣IR值的數(shù)據(jù)银伟,對(duì)于圖a這樣的分布獨(dú)立的數(shù)據(jù)集基本不需要任何額外的處理方法就能使得分類器很好的將正樣本和負(fù)樣本區(qū)分開。
在圖b中正樣本和負(fù)樣本完全均勻的重合在一起,這樣的數(shù)據(jù)集無論采用什么策略來處理數(shù)據(jù)得到的最好的結(jié)果都只是分出一半的正樣本彤避,同時(shí)損失一半負(fù)樣本的精度傅物。
圖c中正樣本和負(fù)樣本只有部分使重合的,在這種情況下如果采用合適的策略處理數(shù)據(jù)是可以將正樣本正確的區(qū)分出來同時(shí)保證負(fù)樣本的精度不會(huì)下降太多忠藤,在接下來提出的方法主要針對(duì)c圖所處的條件下挟伙。
解決方法
在數(shù)據(jù)不均衡的場(chǎng)景中并沒有什么固定的方法或者對(duì)所有情況都適用的策略,采取什么策略一切都得依據(jù)真實(shí)數(shù)據(jù)來定模孩,更普遍的情況是在數(shù)據(jù)上嘗試不同的方法最后根據(jù)科學(xué)的評(píng)估指標(biāo)選取一種或者幾種策略尖阔。基本考慮的幾個(gè)思路的方向是采用一些策略使得正負(fù)樣本更加均衡榨咐,調(diào)整不同類別的權(quán)重介却,在訓(xùn)練模型時(shí)對(duì)少量的樣本施加更大的懲罰等。這些策略大體分為兩個(gè)層面块茁,分別是數(shù)據(jù)層面和算法層面齿坷,接下來展開討論。
數(shù)據(jù)層面的策略
1.欠采樣和過采樣
過采樣就是簡(jiǎn)單隨機(jī)復(fù)制少數(shù)類別的樣本数焊,使得最終的數(shù)量和多數(shù)類別均衡永淌。欠采樣就是隨機(jī)抽取數(shù)量較多類別的樣本,使得最終的樣本均衡佩耳。方法雖然簡(jiǎn)單但是也是最直接有效的辦法遂蛀。此處需要避開一個(gè)誤區(qū),有的讀者可能認(rèn)為欠采樣是減少樣本這樣會(huì)減少正樣本的有效信息而過采樣不會(huì)產(chǎn)生這種情況干厚,實(shí)際條件下真實(shí)數(shù)據(jù)中都會(huì)存在噪聲李滴,復(fù)制少量樣本進(jìn)行填充也會(huì)將噪聲更多的引入也會(huì)影響分類器的決策。
2.構(gòu)造新的樣本
由于隨機(jī)過采樣只是簡(jiǎn)單復(fù)制樣本的策略來增加少數(shù)類樣本蛮瞄,這樣的方法容易產(chǎn)生一些模型過擬合的問題所坯,使得模型學(xué)到的特征依賴數(shù)據(jù)分布而不夠泛化,于是提出了一些分析少數(shù)類別樣本并通過已有的樣本合成新數(shù)據(jù)添加入數(shù)據(jù)集訓(xùn)練的方法挂捅。比較有代表性的是SMOTE(Synthetic Minority Oversampling Technique)芹助,算法原理如下:
(1)對(duì)于少數(shù)類中每一個(gè)樣本X,以歐氏距離為標(biāo)準(zhǔn)計(jì)算它到少數(shù)類樣本集?Smin?中所有樣本的距離闲先,得到其k近鄰周瞎。
(2)根據(jù)樣本不平衡比例設(shè)置一個(gè)采樣比例以確定采樣倍率N,對(duì)于每一個(gè)少數(shù)類樣本饵蒂,X從其k近鄰中隨機(jī)選擇若干個(gè)樣本声诸,假設(shè)選擇的近鄰為
(3)對(duì)于每一個(gè)隨機(jī)選出的近鄰?,分別與原樣本按照如下的公式構(gòu)建新的樣本退盯。
降采樣和過采樣都會(huì)具有一定自身的局限性彼乌,降采樣有概率遺失一些重要的數(shù)據(jù)信息泻肯,過采樣會(huì)引使得數(shù)據(jù)自身的噪聲放大,同時(shí)有風(fēng)險(xiǎn)產(chǎn)生模型過擬合慰照,使用時(shí)需要結(jié)合實(shí)際數(shù)據(jù)灶挟,并使用科學(xué)的評(píng)估指標(biāo)選擇時(shí)候具體數(shù)據(jù)的處理方法和降采樣和過采樣的比例
算法層面的策略
在算法層面大體有以下的幾種思路:1.通過不均衡的數(shù)據(jù)集指定特殊的模型訓(xùn)練策略。2.對(duì)現(xiàn)有的模型和決策方法引入代價(jià)敏感學(xué)習(xí)毒租。3.改變思路將分類任務(wù)變?yōu)橐粋€(gè)無監(jiān)督的異常點(diǎn)檢測(cè)任務(wù)稚铣。
接下來針對(duì)這三個(gè)方向做詳細(xì)說明。
1.采用特殊的訓(xùn)練策略
(1)在訓(xùn)練神經(jīng)網(wǎng)絡(luò)時(shí)墅垮,假定多數(shù)類別樣本是少數(shù)類別樣本的N倍惕医,在進(jìn)行隨機(jī)梯度下降優(yōu)化時(shí),遇到少數(shù)類別的樣本可以將該樣本重復(fù)訓(xùn)練N次算色。
(2)假定少數(shù)類有m個(gè)樣本抬伺,對(duì)多數(shù)類樣本聚成N個(gè)簇,從這N個(gè)簇中心點(diǎn)的周圍抽出m個(gè)樣本灾梦,并將其與少數(shù)類混合峡钓,這樣就得到N個(gè)均衡的數(shù)據(jù)集,通過訓(xùn)練得到N個(gè)分類器若河,將這N個(gè)分類器的決策結(jié)果以投票的方式(少數(shù)服從多數(shù))產(chǎn)生最終的分類能岩。
(3)訓(xùn)練三個(gè)分類器分別用C1、C2萧福、C3表示拉鹃,首先使得第一個(gè)分類器的輸出固定為多數(shù)類,之后將C1分錯(cuò)的樣本提出统锤,同時(shí)從分對(duì)的樣本中等量的隨機(jī)抽取樣本合成新的訓(xùn)練集合D1毛俏,使用D1訓(xùn)練C2炭庙,接著在將C2分錯(cuò)數(shù)據(jù)和等量分對(duì)的數(shù)據(jù)打亂后合成集合D2饲窿,再使用D2訓(xùn)練C3。最后采樣投票的方式產(chǎn)生決策結(jié)果焕蹄,即只有當(dāng)C2和C3的決策結(jié)果全為正樣本時(shí)結(jié)果才為正樣本逾雄,其他情況下為負(fù)樣本。
2.代價(jià)敏感學(xué)習(xí)
代價(jià)敏感學(xué)習(xí)(Cost-sensitive learning)的啟發(fā)來自分類問題中腻脏,錯(cuò)誤的分類對(duì)現(xiàn)實(shí)造成的結(jié)果是不相同的鸦泳,例如:在醫(yī)學(xué)診斷中將一陽性病例確診為陰性,和將陰性確診為陽性造成的后果是不一樣的永品。如何將現(xiàn)實(shí)中的后果轉(zhuǎn)化成一種代價(jià)反饋給模型做鹰,這就是代價(jià)敏感學(xué)習(xí)的研究?jī)?nèi)容,通常代價(jià)被描述為一個(gè)代價(jià)矩陣如下所示:
通常情況下C00和C11位置表示分對(duì)結(jié)果所有代價(jià)為0鼎姐,C01表示將第0類錯(cuò)分為第1類的代價(jià)钾麸,C10表示第1類錯(cuò)分為第0類的代價(jià)更振。從模型學(xué)習(xí)的角度出發(fā)學(xué)者們針對(duì)不同的分類器都提出了代價(jià)敏感的版本,例如:決策樹的代價(jià)敏感剪枝饭尝、代價(jià)敏感深度置信網(wǎng)絡(luò)肯腕、代價(jià)敏感支持向量機(jī)。還有基于模型的分類結(jié)果對(duì)最終的分類做代價(jià)敏感的后處理钥平,和基于代價(jià)對(duì)訓(xùn)練樣本施加權(quán)重实撒,來獲得代價(jià)敏感的模型。
(1)基于代價(jià)學(xué)習(xí)的AdaCost模型
AdaCost是AdaBoost的代價(jià)敏感版本涉瘾,AdaBoost的算法流程主要流程如下:
?
為訓(xùn)練樣本的權(quán)重初始化知态,m為樣本的個(gè)數(shù)
? 之后循環(huán)訓(xùn)練個(gè)基礎(chǔ)分類器,在第t輪中?
?為本次訓(xùn)練的基礎(chǔ)分類器睡汹,??為該輪基礎(chǔ)分類器分類的錯(cuò)誤的概率(如果該概率大于0.5則表示此分類器沒有任何效果就會(huì)退出循環(huán))肴甸,利用計(jì)算出該分類器占最后決策的比重 。
? 使
用來更新下一輪數(shù)據(jù)的樣本的權(quán)重囚巴。
? 最后使用訓(xùn)練的T個(gè)分類器和T個(gè)決策系數(shù) 原在,得出最終的分類結(jié)果。
了解了AdaBoost的原理后彤叉,任務(wù)就是要將代價(jià)系數(shù)??也加入到下一輪的樣本權(quán)重的決策上庶柿,所以修改如下公式:
改為
就產(chǎn)生了AdaCost算法。
(2)訓(xùn)練模型時(shí)為樣本增加代價(jià)系數(shù)可以使得分類的界限更加明確如下圖所示是沒有代價(jià)系數(shù)模型(左圖)和增加代價(jià)系數(shù)(右圖)的分類效果:
圖中展示黑色和白色兩種類別的分類效果秽浇,可以看出左圖展示的模型分類使得類別分類的界限更加明確浮庐。
(3)同樣可以使用代價(jià)矩陣中的代價(jià)系數(shù)去合理的選取不同分類器最終的決策閾值使得區(qū)分出更加重要的決策結(jié)果,優(yōu)化的原理公式為:
其中 P(j|X)表示樣本x被分類器分為j類的概率柬焕,C(i,j)表示代價(jià)矩陣中的系數(shù)审残。
代價(jià)敏感學(xué)習(xí)實(shí)質(zhì)是一種思想和指導(dǎo)方法,可以將其應(yīng)用在從數(shù)據(jù)選取到模型訓(xùn)練的各個(gè)階段斑举,每一種方法針對(duì)不同數(shù)據(jù)集的效果都可能會(huì)產(chǎn)生不等的差距搅轿,需要不斷嘗試在實(shí)際應(yīng)用時(shí)科學(xué)評(píng)判不同的策略和算法.
在實(shí)際的應(yīng)用中對(duì)于處理不平衡數(shù)據(jù)集的方法仍然還有很多,在面對(duì)實(shí)際數(shù)據(jù)時(shí)還有很多數(shù)據(jù)處理上的問題富玷,需要大量的算法去嘗試和解決璧坟,在偶數(shù)的LittleBoy自動(dòng)化機(jī)器學(xué)習(xí)平臺(tái)中已經(jīng)集成了大量的數(shù)據(jù)預(yù)處理、模型訓(xùn)練赎懦、數(shù)據(jù)可視化的算法和工具雀鹃,簡(jiǎn)化了數(shù)據(jù)分析和數(shù)據(jù)智能的門檻,歡迎讀者來體驗(yàn)励两。
本文首發(fā)自公號(hào)“偶數(shù)科技”第一時(shí)間了解更多信息歡迎關(guān)注哦~