日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

机器学习-特征工程中的样本不均衡处理方法

發(fā)布時(shí)間:2025/3/21 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习-特征工程中的样本不均衡处理方法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

?

? ? ? 如果你才開(kāi)始學(xué)習(xí)機(jī)器學(xué)習(xí),那么你使用過(guò)的數(shù)據(jù)集很大程度上都是簡(jiǎn)單、普通、規(guī)整的。其中一個(gè)原因就是,當(dāng)你構(gòu)建分類(lèi)器時(shí),樣本類(lèi)都是平衡的。在教學(xué)中,數(shù)據(jù)集通常是處理過(guò)的,這樣才能夠把注意力集中在特定算法或技巧上,而不被其它問(wèn)題干擾。一般情況下,你遇到的樣本類(lèi)似下方的二維圖表,其中的點(diǎn)代表樣本、點(diǎn)的不同顏色(或形狀)代表類(lèi):

分類(lèi)算法的目標(biāo)是嘗試學(xué)習(xí)出一個(gè)能夠分辨二者的分離器(分類(lèi)器)。根據(jù)不同的數(shù)學(xué)、統(tǒng)計(jì)或幾何假設(shè),達(dá)成這一目標(biāo)的方法很多:

然而,當(dāng)你開(kāi)始面對(duì)真實(shí)的、未加工過(guò)的數(shù)據(jù)時(shí),你會(huì)馬上注意到,這些數(shù)據(jù)要嘈雜且不平衡得多。真實(shí)數(shù)據(jù)的散點(diǎn)圖看起來(lái)更像是這樣的:

最主要的問(wèn)題是這些類(lèi)是不平衡的:藍(lán)點(diǎn)的數(shù)量遠(yuǎn)超紅點(diǎn)。對(duì)于不平衡類(lèi)的研究通常認(rèn)為「不平衡」意味著少數(shù)類(lèi)只占 10% 到 20% 。而在現(xiàn)實(shí)中,數(shù)據(jù)集甚至能夠比上面的例子更加不平衡,比如以下是一些例子:

  • 每年,約 2% 的信用卡賬戶(hù)是偽造的。(多數(shù)的欺詐檢測(cè)領(lǐng)域是極其不平衡的);

  • 針對(duì)某一病征的醫(yī)學(xué)篩查通常涵蓋了許多沒(méi)有此病征的人,以檢查出少數(shù)患者(例:美國(guó)的 HIV 感染率約為 0.4%);

  • 每年,硬盤(pán)驅(qū)動(dòng)器故障的發(fā)生率約為 1%;

  • 在線(xiàn)廣告的轉(zhuǎn)化率在 10^-3 到 10^-6 的范圍區(qū)間內(nèi);

  • 工廠的產(chǎn)品缺陷率一般在 0.1% 左右;

?

? ? ? ?類(lèi)別不均衡是指在分類(lèi)學(xué)習(xí)算法中,不同類(lèi)別樣本的比例相差懸殊,它會(huì)對(duì)算法的學(xué)習(xí)過(guò)程造成重大的干擾。比如在一個(gè)二分類(lèi)的問(wèn)題上,有1000個(gè)樣本,其中5個(gè)正樣本,995個(gè)負(fù)樣本,在這種情況下,算法只需將所有的樣本預(yù)測(cè)為負(fù)樣本,那么它的精度(查準(zhǔn)率)也可以達(dá)到99.5%,雖然結(jié)果的精度很高,但它依然沒(méi)有價(jià)值,因?yàn)檫@樣的學(xué)習(xí)算法不能預(yù)測(cè)出正樣本。這里我們可以知道不均衡問(wèn)題會(huì)導(dǎo)致樣本較少那一類(lèi)的高錯(cuò)分率,即較少一類(lèi)的樣本會(huì)有較大的比例會(huì)被預(yù)測(cè)成樣本數(shù)量較多的那一類(lèi)。

? ? ? ?樣本不平衡程度的大小不同,解決的難易程度也可能不同,因?yàn)閱?wèn)題難易程度還取決于我們所擁有數(shù)據(jù)有多大。比如在預(yù)測(cè)癌癥診斷的場(chǎng)景中,因?yàn)榛及┌Y的人本來(lái)就很少,所以數(shù)據(jù)不但不平衡,樣本數(shù)還非常少,這樣的問(wèn)題就非常棘手。綜上,可以把問(wèn)題根據(jù)難度從小到大排個(gè)序:大數(shù)據(jù)+分布均衡<大數(shù)據(jù)+分布不均衡<小數(shù)據(jù)+數(shù)據(jù)均衡<小數(shù)據(jù)+數(shù)據(jù)不均衡。對(duì)于需要解決的問(wèn)題,拿到數(shù)據(jù)后,首先統(tǒng)計(jì)可用訓(xùn)練數(shù)據(jù)有多大,然后再觀察數(shù)據(jù)分布情況。經(jīng)驗(yàn)表明,訓(xùn)練數(shù)據(jù)中每個(gè)類(lèi)別有5000個(gè)以上樣本,數(shù)據(jù)量是足夠的,正負(fù)樣本差一個(gè)數(shù)量級(jí)以?xún)?nèi)是可以接受的,不太需要考慮數(shù)據(jù)不平衡問(wèn)題(僅供參考)。
?

處理不平衡數(shù)據(jù),可以從兩方面考慮:

一是改變數(shù)據(jù)分布,從數(shù)據(jù)層面使得類(lèi)別更為平衡;

二是改變分類(lèi)算法,在傳統(tǒng)分類(lèi)算法的基礎(chǔ)上對(duì)不同類(lèi)別采取不同的加權(quán)方式,使得模型更看重少數(shù)類(lèi)。

?

一、改變數(shù)據(jù)分布

? ? ? ?改變數(shù)據(jù)分布主要是通過(guò)對(duì)數(shù)據(jù)進(jìn)行采樣的方法完成,采樣分為上采樣(過(guò)采樣)(Oversampling)下采樣(欠采樣)(Undersampling),上采樣是把小種類(lèi)復(fù)制多份,下采樣是從大眾類(lèi)中剔除一些樣本,或者說(shuō)只從大眾類(lèi)中選取部分樣本。

? ? ? ? ??

通過(guò)對(duì)數(shù)據(jù)集的不同的過(guò)采樣方法,大致可以分為以下四類(lèi),具體為:

1. 基礎(chǔ)版本的過(guò)采樣:隨機(jī)過(guò)采樣訓(xùn)練樣本中數(shù)量比較少的數(shù)據(jù);缺點(diǎn),容易過(guò)擬合;
2. 改進(jìn)版本的過(guò)采樣:SMOTE,通過(guò)插值的方式加入近鄰的數(shù)據(jù)點(diǎn);
3. 基于聚類(lèi)的過(guò)采樣:先對(duì)數(shù)據(jù)進(jìn)行聚類(lèi),然后對(duì)聚類(lèi)后的數(shù)據(jù)分別進(jìn)行過(guò)采樣。這種方法能夠降低類(lèi)間和類(lèi)內(nèi)的不平衡。
4. 神經(jīng)網(wǎng)絡(luò)中的過(guò)采樣:SGD訓(xùn)練時(shí),保證每個(gè)batch內(nèi)部樣本均衡。

?

1. 隨機(jī)過(guò)采樣

? ? ? ?通過(guò)增加少數(shù)類(lèi)樣本數(shù)量最簡(jiǎn)單的方法便是隨機(jī)復(fù)制少數(shù)類(lèi)樣本,可以事先設(shè)置多數(shù)類(lèi)與少數(shù)類(lèi)最終的數(shù)量比例ratio,在保留多數(shù)類(lèi)樣本不變的情況下,根據(jù)ratio隨機(jī)復(fù)制少數(shù)類(lèi)樣本。在使用的過(guò)程中為了保證所有的少數(shù)類(lèi)樣本信息都會(huì)被包含,可以先完全復(fù)制一份全量的少數(shù)類(lèi)樣本,再隨機(jī)復(fù)制少數(shù)類(lèi)樣本使得數(shù)量比例滿(mǎn)足給定的ratio。

  • 優(yōu)點(diǎn):操作簡(jiǎn)單,只依賴(lài)于樣本分布,不依賴(lài)于任何距離信息,屬于非啟發(fā)式方法。

  • 缺點(diǎn):重復(fù)樣本過(guò)多,容易造成分類(lèi)器的過(guò)擬合。

?

2. SMOTE過(guò)采樣

SMOTE(Synthetic Minority Oversampling Technique),合成少數(shù)類(lèi)過(guò)采樣技術(shù).它是基于隨機(jī)過(guò)采樣算法的一種改進(jìn)方案,由于隨機(jī)過(guò)采樣采取簡(jiǎn)單復(fù)制樣本的策略來(lái)增加少數(shù)類(lèi)樣本,這樣容易產(chǎn)生模型過(guò)擬合的問(wèn)題,即使得模型學(xué)習(xí)到的信息過(guò)于特別而不夠泛化,SMOTE算法的基本思想是對(duì)少數(shù)類(lèi)樣本進(jìn)行分析并根據(jù)少數(shù)類(lèi)樣本人工合成新樣本添加到數(shù)據(jù)集中。具體的步驟為:

(1)對(duì)于少數(shù)類(lèi)中每一個(gè)樣本x,以歐氏距離為標(biāo)準(zhǔn)計(jì)算它到少數(shù)類(lèi)樣本集中所有樣本的距離,得到其k近鄰。

(2)根據(jù)樣本不平衡比例設(shè)置一個(gè)采樣比例以確定采樣倍率N,對(duì)于每一個(gè)少數(shù)類(lèi)樣本x,從其k近鄰中隨機(jī)選擇若干個(gè)樣本,假設(shè)選擇的近鄰為xn。

(3)對(duì)于每一個(gè)隨機(jī)選出的近鄰xn,分別與原樣本按照如下的公式構(gòu)建新的樣本。

公式為:

? ? ? ? ? ? ? ? ? ? ? ? ??

?SMOTE算法的思想是合成新的少數(shù)類(lèi)樣本,合成的策略是對(duì)每個(gè)少數(shù)類(lèi)樣本a,從它的最近鄰中隨機(jī)選一個(gè)樣本b,然后在a、b之間的連線(xiàn)上隨機(jī)選一點(diǎn)作為新合成的少數(shù)類(lèi)樣本。如圖所示:

? ? ??

? ? ? 該算法主要存在兩方面的問(wèn)題:一是在近鄰選擇時(shí),存在一定的盲目性。從上面的算法流程可以看出,在算法執(zhí)行過(guò)程中,需要確定K值,即選擇多少個(gè)近鄰樣本,這需要用戶(hù)自行解決。從K值的定義可以看出,K值的下限是M值(M值為從K個(gè)近鄰中隨機(jī)挑選出的近鄰樣本的個(gè)數(shù),且有M< K),M的大小可以根據(jù)負(fù)類(lèi)樣本數(shù)量、正類(lèi)樣本數(shù)量和數(shù)據(jù)集最后需要達(dá)到的平衡率決定。但K值的上限沒(méi)有辦法確定,只能根據(jù)具體的數(shù)據(jù)集去反復(fù)測(cè)試。因此如何確定K值,才能使算法達(dá)到最優(yōu)這是未知的。

? ? ? ?另外,該算法無(wú)法克服非平衡數(shù)據(jù)集的數(shù)據(jù)分布問(wèn)題,容易產(chǎn)生分布邊緣化問(wèn)題。由于負(fù)類(lèi)樣本的分布決定了其可選擇的近鄰,如果一個(gè)負(fù)類(lèi)樣本處在負(fù)類(lèi)樣本集的分布邊緣,則由此負(fù)類(lèi)樣本和相鄰樣本產(chǎn)生的“人造”樣本也會(huì)處在這個(gè)邊緣,且會(huì)越來(lái)越邊緣化,從而模糊了正類(lèi)樣本和負(fù)類(lèi)樣本的邊界,而且使邊界變得越來(lái)越模糊。這種邊界模糊性,雖然使數(shù)據(jù)集的平衡性得到了改善,但加大了分類(lèi)算法進(jìn)行分類(lèi)的難度。

?

3. KMeansSMOTE

? ? ? ?KMeansSMOTE采用簡(jiǎn)單和流行的k-means聚類(lèi)算法結(jié)合SMOTE過(guò)采樣,以重新平衡數(shù)據(jù)集。它設(shè)法通過(guò)僅在安全區(qū)域進(jìn)行過(guò)采樣來(lái)避免產(chǎn)生噪聲。此外,它的重點(diǎn)是類(lèi)別間的不平衡和類(lèi)別內(nèi)的不平衡,通過(guò)使稀疏的少數(shù)類(lèi)別樣本增加來(lái)對(duì)抗小的分離問(wèn)題。由于其簡(jiǎn)單性和kmeans以及SMOTE的廣泛可用性,該方法易于實(shí)現(xiàn)。它與相關(guān)方法的不同之處不僅在于其復(fù)雜度低,而且還因?yàn)槠浠诰垲?lèi)分布生成樣本。?
? ? ? ?KMeansSMOTE包括三個(gè)步驟:聚類(lèi)、過(guò)濾和過(guò)采樣。在聚類(lèi)步驟中,使用k均值聚類(lèi)為k個(gè)組。過(guò)濾選擇用于過(guò)采樣的簇,保留具有高比例的少數(shù)類(lèi)樣本的簇。然后,它分配合成樣本的數(shù)量,將更多樣本分配給少數(shù)樣本稀疏分布的群集。最后,過(guò)采樣步驟,在每個(gè)選定的簇中應(yīng)用SMOTE以實(shí)現(xiàn)少數(shù)和多數(shù)實(shí)例的目標(biāo)比率。?

?

4. 隨機(jī)欠采樣

? ? ? ?減少多數(shù)類(lèi)樣本數(shù)量最簡(jiǎn)單的方法便是隨機(jī)剔除多數(shù)類(lèi)樣本,可以事先設(shè)置多數(shù)類(lèi)與少數(shù)類(lèi)最終的數(shù)量比例ratio,在保留少數(shù)類(lèi)樣本不變的情況下,根據(jù)ratio隨機(jī)選擇多數(shù)類(lèi)樣本。

  • 優(yōu)點(diǎn):操作簡(jiǎn)單,只依賴(lài)于樣本分布,不依賴(lài)于任何距離信息,屬于非啟發(fā)式方法。

  • 缺點(diǎn):會(huì)丟失一部分多數(shù)類(lèi)樣本的信息,無(wú)法充分利用已有信息。

?

5. EasyEnsemble

? ? ? ?EasyEnsemble算法是一種有效的不均衡數(shù)據(jù)分類(lèi)方法。它將多數(shù)類(lèi)樣本隨機(jī)分成多個(gè)子集,每個(gè)子集分別與少數(shù)類(lèi)合并,得到多個(gè)新的訓(xùn)練子集,并利用每個(gè)訓(xùn)練子集訓(xùn)練一個(gè)AdaBoost基分類(lèi)器,最后集成所有基分類(lèi)器,得到最終的分類(lèi)器。EasyEnsemble算法有效解決了數(shù)據(jù)不均衡問(wèn)題,且減少欠采樣造成的多數(shù)類(lèi)樣本信息損失。但是,EasyEnsemble算法未考慮少數(shù)類(lèi)樣本極度欠缺的情況,由于少數(shù)類(lèi)樣本數(shù)遠(yuǎn)小于正確訓(xùn)練分類(lèi)器所需的樣本數(shù),導(dǎo)致基學(xué)習(xí)器的分類(lèi)性能差,進(jìn)而最終的分類(lèi)器性能也很差。另外,噪聲是另一個(gè)影響分類(lèi)器性能的關(guān)鍵因素,在EasyEnsemble算法中并未考慮。

?

6. 使用K-fold交叉驗(yàn)證

K-fold交叉驗(yàn)證就是把原始數(shù)據(jù)隨機(jī)分成K個(gè)部分,在這K個(gè)部分中選擇一個(gè)作為測(cè)試數(shù)據(jù),剩余的K-1個(gè)作為訓(xùn)練數(shù)據(jù)。交叉驗(yàn)證的過(guò)程實(shí)際上是將實(shí)驗(yàn)重復(fù)做K次,每次實(shí)驗(yàn)都從K個(gè)部分中選擇一個(gè)不同的部分作為測(cè)試數(shù)據(jù),剩余的數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)進(jìn)行實(shí)驗(yàn),最后把得到的K個(gè)實(shí)驗(yàn)結(jié)果平均。

?

7. 轉(zhuǎn)化為一分類(lèi)問(wèn)題

對(duì)于二分類(lèi)問(wèn)題,如果正負(fù)樣本分布比例極不平衡,我們可以換一個(gè)完全不同的角度來(lái)看待問(wèn)題:把它看做一分類(lèi)(One Class Learning)或異常檢測(cè)(Novelty Detection)問(wèn)題。這類(lèi)方法的重點(diǎn)不在于捕捉類(lèi)間的差別,而是為其中一類(lèi)進(jìn)行建模,經(jīng)典的工作包括One-class SVM等。

?

二、模型評(píng)價(jià)方式

? ? ? ?謹(jǐn)慎選擇AUC作為評(píng)價(jià)指標(biāo):對(duì)于數(shù)據(jù)極端不平衡時(shí),可以觀察觀察不同算法在同一份數(shù)據(jù)下的訓(xùn)練結(jié)果的precision和recall,這樣做有兩個(gè)好處,一是可以了解不同算法對(duì)于數(shù)據(jù)的敏感程度,二是可以明確采取哪種評(píng)價(jià)指標(biāo)更合適。針對(duì)機(jī)器學(xué)習(xí)中的數(shù)據(jù)不平衡問(wèn)題,建議更多PR(Precision-Recall曲線(xiàn)),而非ROC曲線(xiàn),具體原因畫(huà)圖即可得知,如果采用ROC曲線(xiàn)來(lái)作為評(píng)價(jià)指標(biāo),很容易因?yàn)锳UC值高而忽略實(shí)際對(duì)少兩樣本的效果其實(shí)并不理想的情況。

? ? ? ?不要只看Accuracy:Accuracy可以說(shuō)是最模糊的一個(gè)指標(biāo)了,因?yàn)檫@個(gè)指標(biāo)高可能壓根就不能代表業(yè)務(wù)的效果好,在實(shí)際生產(chǎn)中,我們可能更關(guān)注precision/recall/mAP等具體的指標(biāo),具體側(cè)重那個(gè)指標(biāo),得結(jié)合實(shí)際情況看。

?

三、算法選擇

(1)選擇對(duì)數(shù)據(jù)傾斜相對(duì)不敏感的算法。如樹(shù)模型等。

(2)集成學(xué)習(xí)(Ensemble集成算法)。首先從多數(shù)類(lèi)中獨(dú)立隨機(jī)抽取出若干子集,將每個(gè)子集與少數(shù)類(lèi)數(shù)據(jù)聯(lián)合起來(lái)訓(xùn)練生成多個(gè)基分類(lèi)器,再加權(quán)組成新的分類(lèi)器,如加法模型、Adaboost、隨機(jī)森林等。

(3)將任務(wù)轉(zhuǎn)換成異常檢測(cè)問(wèn)題。譬如有這樣一個(gè)項(xiàng)目,需要從高壓線(xiàn)的航拍圖片中,將松動(dòng)的螺絲/零件判斷為待檢測(cè)站點(diǎn),即負(fù)樣本,其他作為正樣本,這樣來(lái)看,數(shù)據(jù)傾斜是非常嚴(yán)重的,而且在圖像質(zhì)量一般的情況下小物體檢測(cè)的難度較大,所以不如將其轉(zhuǎn)換為無(wú)監(jiān)督的異常檢測(cè)算法,不用過(guò)多的去考慮將數(shù)據(jù)轉(zhuǎn)換為平衡問(wèn)題來(lái)解決。

?

四、總結(jié)

? ? ? 解決數(shù)據(jù)不平衡問(wèn)題的方法有很多,上面只是一些最常用的方法,而最常用的方法也有這么多種,如何根據(jù)實(shí)際問(wèn)題選擇合適的方法呢?接下來(lái)談?wù)勔恍┪业慕?jīng)驗(yàn)。

  • 在正負(fù)樣本都非常之少的情況下,應(yīng)該采用數(shù)據(jù)合成的方式;
  • 在負(fù)樣本足夠多,正樣本非常之少且比例及其懸殊的情況下,應(yīng)該考慮一分類(lèi)方法;
  • 在正負(fù)樣本都足夠多且比例不是特別懸殊的情況下,應(yīng)該考慮采樣或者加權(quán)的方法。
  • 采樣和加權(quán)在數(shù)學(xué)上是等價(jià)的,但實(shí)際應(yīng)用中效果卻有差別。尤其是采樣了諸如Random Forest等分類(lèi)方法,訓(xùn)練過(guò)程會(huì)對(duì)訓(xùn)練集進(jìn)行隨機(jī)采樣。在這種情況下,如果計(jì)算資源允許上采樣往往要比加權(quán)好一些。
  • 另外,雖然上采樣和下采樣都可以使數(shù)據(jù)集變得平衡,并且在數(shù)據(jù)足夠多的情況下等價(jià),但兩者也是有區(qū)別的。實(shí)際應(yīng)用中,我的經(jīng)驗(yàn)是如果計(jì)算資源足夠且小眾類(lèi)樣本足夠多的情況下使用上采樣,否則使用下采樣,因?yàn)樯喜蓸訒?huì)增加訓(xùn)練集的大小進(jìn)而增加訓(xùn)練時(shí)間,同時(shí)小的訓(xùn)練集非常容易產(chǎn)生過(guò)擬合。
  • 對(duì)于下采樣,如果計(jì)算資源相對(duì)較多且有良好的并行環(huán)境,應(yīng)該選擇Ensemble方法

?

?

?

?

參考鏈接:https://blog.csdn.net/heyongluoyao8/article/details/49408131
參考鏈接:https://blog.csdn.net/zjx459754206/article/details/81213778
參考鏈接:https://www.cnblogs.com/charlotte77/p/10455900.html
參考鏈接:https://mp.weixin.qq.com/s?__biz=MzA3MzI4MjgzMw==&mid=2650718717&idx=1&sn=85038d7c906c135120a8e1a2f7e565ad&scene=0#wechat_redirect

?

?

總結(jié)

以上是生活随笔為你收集整理的机器学习-特征工程中的样本不均衡处理方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。