偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

處理不平衡數(shù)據(jù)的過(guò)采樣技術(shù)對(duì)比總結(jié)

人工智能 機(jī)器學(xué)習(xí)
在不平衡數(shù)據(jù)上訓(xùn)練的分類(lèi)算法往往導(dǎo)致預(yù)測(cè)質(zhì)量差。模型嚴(yán)重偏向多數(shù)類(lèi),忽略了對(duì)許多用例至關(guān)重要的少數(shù)例子。這使得模型對(duì)于涉及罕見(jiàn)但高優(yōu)先級(jí)事件的現(xiàn)實(shí)問(wèn)題來(lái)說(shuō)不切實(shí)際。

在不平衡數(shù)據(jù)上訓(xùn)練的分類(lèi)算法往往導(dǎo)致預(yù)測(cè)質(zhì)量差。模型嚴(yán)重偏向多數(shù)類(lèi),忽略了對(duì)許多用例至關(guān)重要的少數(shù)例子。這使得模型對(duì)于涉及罕見(jiàn)但高優(yōu)先級(jí)事件的現(xiàn)實(shí)問(wèn)題來(lái)說(shuō)不切實(shí)際。

過(guò)采樣提供了一種在模型訓(xùn)練開(kāi)始之前重新平衡類(lèi)的方法。通過(guò)復(fù)制少數(shù)類(lèi)數(shù)據(jù)點(diǎn),過(guò)采樣平衡了訓(xùn)練數(shù)據(jù),防止算法忽略重要但數(shù)量少的類(lèi)。雖然存在過(guò)擬合風(fēng)險(xiǎn),但過(guò)采樣可以抵消不平衡學(xué)習(xí)的負(fù)面影響,可以讓機(jī)器學(xué)習(xí)模型獲得解決關(guān)鍵用例的能力

常見(jiàn)的過(guò)采樣技術(shù)包括隨機(jī)過(guò)采樣、SMOTE(合成少數(shù)過(guò)采樣技術(shù))和ADASYN(不平衡學(xué)習(xí)的自適應(yīng)合成采樣方法)。隨機(jī)過(guò)采樣簡(jiǎn)單地復(fù)制少數(shù)樣本,而SMOTE和ADASYN策略性地生成合成的新數(shù)據(jù)來(lái)增強(qiáng)真實(shí)樣本。

什么是過(guò)采樣

過(guò)采樣是一種數(shù)據(jù)增強(qiáng)技術(shù),用于解決類(lèi)不平衡問(wèn)題(其中一個(gè)類(lèi)的數(shù)量明顯超過(guò)其他類(lèi))。它旨在通過(guò)擴(kuò)大屬于代表性不足的類(lèi)別的樣本量來(lái)重新平衡訓(xùn)練數(shù)據(jù)分布。

過(guò)采樣通過(guò)復(fù)制現(xiàn)有樣本或生成合成的新數(shù)據(jù)點(diǎn)來(lái)增加少數(shù)類(lèi)樣本。這是通過(guò)復(fù)制真實(shí)的少數(shù)觀察結(jié)果或根據(jù)真實(shí)世界的模式創(chuàng)建人工添加來(lái)實(shí)現(xiàn)的。

在模型訓(xùn)練之前通過(guò)過(guò)采樣放大代表性不足的類(lèi)別,這樣模型學(xué)習(xí)可以更全面地代表所有類(lèi)別,而不是嚴(yán)重傾向于占主導(dǎo)地位的類(lèi)別。這改進(jìn)了用于解決涉及檢測(cè)重要但不常見(jiàn)事件的需求的各種評(píng)估度量。

為什么要過(guò)采樣

當(dāng)處理不平衡數(shù)據(jù)集時(shí),我們通常對(duì)正確分類(lèi)少數(shù)類(lèi)感興趣。假陰性(即未能檢測(cè)到少數(shù)類(lèi)別)的成本遠(yuǎn)高于假陽(yáng)性(即錯(cuò)誤地將樣本識(shí)別為屬于少數(shù)類(lèi)別)的成本。

傳統(tǒng)的機(jī)器學(xué)習(xí)算法,如邏輯回歸和隨機(jī)森林目標(biāo)優(yōu)化假設(shè)均衡類(lèi)分布的廣義性能指標(biāo)。所以在傾斜數(shù)據(jù)上訓(xùn)練的模型往往非常傾向于數(shù)量多的類(lèi),而忽略了數(shù)量少但重要的類(lèi)的模式。

通過(guò)對(duì)少數(shù)類(lèi)樣本進(jìn)行過(guò)采樣,數(shù)據(jù)集被重新平衡,以反映所有結(jié)果中更平等的錯(cuò)誤分類(lèi)成本。這確保了分類(lèi)器可以更準(zhǔn)確地識(shí)別代表性不足的類(lèi)別,并減少代價(jià)高昂的假陰性。

過(guò)采樣VS欠采樣

過(guò)采樣和欠采樣都是通過(guò)平衡訓(xùn)練數(shù)據(jù)分布來(lái)解決類(lèi)不平衡的技術(shù)。他們以相反的方式達(dá)到這種平衡。

過(guò)采樣通過(guò)復(fù)制或生成新樣本來(lái)增加少數(shù)類(lèi)來(lái)解決不平衡問(wèn)題。而欠采樣通過(guò)減少代表性過(guò)高的多數(shù)類(lèi)別中的樣本數(shù)量來(lái)平衡類(lèi)別。

當(dāng)大多數(shù)類(lèi)有許多冗余或相似的樣本或處理龐大的數(shù)據(jù)集時(shí),就可以使用欠采樣。但是它欠采樣有可能導(dǎo)致信息的丟失,從而導(dǎo)致有偏見(jiàn)的模型。

當(dāng)數(shù)據(jù)集很小并且少數(shù)類(lèi)的可用樣本有限時(shí),就可以使用過(guò)采樣。由于數(shù)據(jù)重復(fù)或創(chuàng)建了不代表真實(shí)數(shù)據(jù)的合成數(shù)據(jù),它也可能導(dǎo)致過(guò)擬合。

下面我們將探討不同類(lèi)型的過(guò)采樣方法。

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

隨機(jī)過(guò)采樣隨機(jī)復(fù)制少數(shù)類(lèi)樣本以平衡類(lèi)分布,所以他的實(shí)現(xiàn)非常簡(jiǎn)單。它以隨機(jī)的方式從代表性不足的類(lèi)別中選擇現(xiàn)有的樣本,并在不改變的情況下復(fù)制它們。這樣做的好處是當(dāng)數(shù)據(jù)集規(guī)模較小時(shí),可以有效地提高少數(shù)觀測(cè)值,而不需要收集額外的真實(shí)世界數(shù)據(jù)。

imbalanced-learn 庫(kù)中的randomoverampler可以實(shí)現(xiàn)過(guò)采樣的過(guò)程。

from imblearn.over_sampling import RandomOverSampler
 from imblearn.pipeline import make_pipeline
 
 X, y = create_dataset(n_samples=100, weights=(0.05, 0.25, 0.7))
 
 fig, axs = plt.subplots(nrows=1, ncols=2, figsize=(15, 7))
 
 clf.fit(X, y)
 plot_decision_function(X, y, clf, axs[0], title="Without resampling")
 
 sampler = RandomOverSampler(random_state=0)
 model = make_pipeline(sampler, clf).fit(X, y)
 plot_decision_function(X, y, model, axs[1],
                        f"Using {model[0].__class__.__name__}")
 
 fig.suptitle(f"Decision function of {clf.__class__.__name__}")
 fig.tight_layout()

上圖可以看到,通過(guò)復(fù)制樣本,使得少數(shù)類(lèi)的在分類(lèi)結(jié)果中被正確的識(shí)別了。

2、平滑的自舉過(guò)采樣

帶噪聲的隨機(jī)過(guò)采樣是簡(jiǎn)單隨機(jī)過(guò)采樣的改進(jìn)版本,目的是解決其過(guò)擬合問(wèn)題。這種方法不是精確地復(fù)制少數(shù)類(lèi)樣本,而是通過(guò)將隨機(jī)性或噪聲引入現(xiàn)有樣本中來(lái)合成新的數(shù)據(jù)點(diǎn)。

默認(rèn)情況下,隨機(jī)過(guò)采樣會(huì)產(chǎn)生自舉。收縮參數(shù)則在生成的數(shù)據(jù)中添加一個(gè)小的擾動(dòng)來(lái)生成平滑的自舉。下圖顯示了兩種數(shù)據(jù)生成策略之間的差異。

fig, axs = plt.subplots(nrows=1, ncols=2, figsize=(15, 7))
 
 sampler.set_params(shrinkage=1)
 plot_resampling(X, y, sampler, ax=axs[0], title="Normal bootstrap")
 
 sampler.set_params(shrinkage=0.3)
 plot_resampling(X, y, sampler, ax=axs[1], title="Smoothed bootstrap")
 
 fig.suptitle(f"Resampling with {sampler.__class__.__name__}")
 fig.tight_layout()

平滑的自舉插值不是任意重復(fù)少數(shù)觀察樣本,而是創(chuàng)建新的數(shù)據(jù)點(diǎn),這些數(shù)據(jù)點(diǎn)是來(lái)自真實(shí)樣本的特征向量的組合或插值。這樣做的效果是,通過(guò)數(shù)據(jù)擴(kuò)展而不是直接復(fù)制,將可用的少數(shù)數(shù)據(jù)擴(kuò)展到原始記錄之外。

插值的數(shù)據(jù)點(diǎn)是“平滑”的組合,它們占據(jù)真實(shí)樣本周?chē)奶卣骺臻g,而不是覆蓋在它們上面。因此與隨機(jī)過(guò)采樣相比,平滑自舉過(guò)采樣產(chǎn)生了更多新的合成少數(shù)樣本。這有助于解決來(lái)自重復(fù)技術(shù)的過(guò)擬合問(wèn)題,同時(shí)仍然平衡類(lèi)分布。

隨機(jī)過(guò)采樣的好處是它是一種非常直接和簡(jiǎn)單的技術(shù)。它不需要復(fù)雜的算法或?qū)?shù)據(jù)底層分布的假設(shè)。因此,它可以很容易地應(yīng)用于任何不平衡的數(shù)據(jù)集,而不需要特殊的先驗(yàn)知識(shí)。

但是隨機(jī)過(guò)采樣也受到過(guò)擬合可能性的限制。由于它只是復(fù)制了現(xiàn)有的少數(shù)樣本的例子,而不是產(chǎn)生真正的新樣本,所以觀察結(jié)果并沒(méi)有提供關(guān)于代表性不足的類(lèi)的額外信息細(xì)節(jié)。而且這種重復(fù)也有可能放大了訓(xùn)練數(shù)據(jù)中的噪聲,而不是更全面地正確表征少數(shù)類(lèi)。

這樣訓(xùn)練出來(lái)的模型模型可能會(huì)過(guò)度定制初始數(shù)據(jù)集的特定細(xì)微差別,而不是捕獲真正的底層模式。這就限制了它們?cè)诿鎸?duì)新的未知數(shù)據(jù)時(shí)的泛化能力。

3、SMOTE

SMOTE(Synthetic Minority Oversampling Technique)是一種廣泛應(yīng)用于機(jī)器學(xué)習(xí)中緩解類(lèi)失衡問(wèn)題的過(guò)采樣方法。

SMOTE背后的關(guān)鍵概念是,它通過(guò)插值而不是復(fù)制,為代表性不足的類(lèi)生成新的合成數(shù)據(jù)點(diǎn)。它隨機(jī)選擇一個(gè)少數(shù)類(lèi)觀測(cè)值,并根據(jù)特征空間距離確定其最近的k個(gè)相鄰少數(shù)類(lèi)樣本。

然后通過(guò)在初始樣本和k個(gè)鄰居之間進(jìn)行插值生成新的合成樣本。這種插值策略合成了新的數(shù)據(jù)點(diǎn),這些數(shù)據(jù)點(diǎn)填充了真實(shí)觀測(cè)之間的區(qū)域,在功能上擴(kuò)展了可用的少數(shù)樣本,而不需要復(fù)制原始記錄。

SMOTE 的工作流程如下:

  1. 對(duì)于每個(gè)少數(shù)類(lèi)樣本,計(jì)算其在特征空間中的 K 近鄰樣本,K 是一個(gè)用戶(hù)定義的參數(shù)。
  2. 針對(duì)每個(gè)少數(shù)類(lèi)樣本,從其 K 近鄰中隨機(jī)選擇一個(gè)樣本。
  3. 對(duì)于選定的近鄰樣本和當(dāng)前少數(shù)類(lèi)樣本,計(jì)算它們之間的差異,并乘以一個(gè)隨機(jī)數(shù)(通常在 [0, 1] 之間),將該乘積加到當(dāng)前樣本上,生成新的合成樣本。
  4. 重復(fù)上述步驟,為每個(gè)少數(shù)類(lèi)樣本生成一定數(shù)量的合成樣本。
  5. 將生成的合成樣本與原始數(shù)據(jù)合并,用于訓(xùn)練分類(lèi)模型。

SMOTE 的關(guān)鍵優(yōu)勢(shì)在于通過(guò)合成樣本能夠增加數(shù)據(jù)集中少數(shù)類(lèi)的樣本數(shù)量,而不是簡(jiǎn)單地重復(fù)已有的樣本。這有助于防止模型對(duì)于過(guò)擬合少數(shù)類(lèi)樣本,同時(shí)提高對(duì)未見(jiàn)過(guò)樣本的泛化性能。

SMOTE 也有一些變種,例如 Borderline-SMOTE 和 ADASYN,它們?cè)谏珊铣蓸颖緯r(shí)考慮了樣本的邊界情況和密度信息,進(jìn)一步改進(jìn)了類(lèi)別不平衡問(wèn)題的處理效果。

4、自適應(yīng)合成采樣(ADASYN)

自適應(yīng)合成采樣(Adaptive Synthetic Sampling,ADASYN) 是一種基于數(shù)據(jù)重采樣的方法,它通過(guò)在特征空間中對(duì)少數(shù)類(lèi)樣本進(jìn)行合成生成新的樣本,從而平衡不同類(lèi)別的樣本分布。與簡(jiǎn)單的過(guò)采樣方法(如重復(fù)少數(shù)類(lèi)樣本)不同,ADASYN 能夠根據(jù)樣本的密度分布自適應(yīng)地生成新的樣本,更注重在密度較低的區(qū)域生成樣本,以提高模型對(duì)邊界區(qū)域的泛化能力。

ADASYN 的工作流程如下:

  1. 對(duì)于每個(gè)少數(shù)類(lèi)樣本,計(jì)算其在特征空間中的 K 近鄰樣本,K 是一個(gè)用戶(hù)定義的參數(shù)。
  2. 計(jì)算每個(gè)少數(shù)類(lèi)樣本與其 K 近鄰樣本之間的樣本密度比,該比例用于表示樣本所在區(qū)域的密度。
  3. 對(duì)于每個(gè)少數(shù)類(lèi)樣本,根據(jù)其樣本密度比,生成一定數(shù)量的合成樣本,使得合成樣本更集中在密度較低的區(qū)域。
  4. 將生成的合成樣本與原始數(shù)據(jù)合并,用于訓(xùn)練分類(lèi)模型。

ADASYN 的主要目標(biāo)是在增加少數(shù)類(lèi)樣本的同時(shí),盡量保持分類(lèi)器在決策邊界附近的性能。也就是說(shuō)如果少數(shù)類(lèi)的一些最近鄰來(lái)自相反的類(lèi),來(lái)自相反類(lèi)的鄰居越多,它就越有可能被用作模板。在選擇模板之后,它通過(guò)在模板和同一類(lèi)的最近鄰居之間進(jìn)行插值來(lái)生成樣本。

生成方法對(duì)比

from imblearn import FunctionSampler # to use a idendity sampler
 from imblearn.over_sampling import ADASYN, SMOTE
 
 X, y = create_dataset(n_samples=150, weights=(0.1, 0.2, 0.7))
 
 fig, axs = plt.subplots(nrows=2, ncols=2, figsize=(15, 15))
 
 samplers = [
    FunctionSampler(),
    RandomOverSampler(random_state=0),
    SMOTE(random_state=0),
    ADASYN(random_state=0),
 ]
 
 for ax, sampler in zip(axs.ravel(), samplers):
    title = "Original dataset" if isinstance(sampler, FunctionSampler) else None
    plot_resampling(X, y, sampler, ax, title=title)
 fig.tight_layout()

上圖可以看到ADASYN和SMOTE之間的區(qū)別。ADASYN將專(zhuān)注于難以分類(lèi)的樣本,而常規(guī)SMOTE將不做任何區(qū)分。

下面我們看看不同算法的分類(lèi)結(jié)果

X, y = create_dataset(n_samples=150, weights=(0.05, 0.25, 0.7))
 
 fig, axs = plt.subplots(nrows=1, ncols=3, figsize=(20, 6))
 
 models = {
    "Without sampler": clf,
    "ADASYN sampler": make_pipeline(ADASYN(random_state=0), clf),
    "SMOTE sampler": make_pipeline(SMOTE(random_state=0), clf),
 }
 
 for ax, (title, model) in zip(axs, models.items()):
    model.fit(X, y)
    plot_decision_function(X, y, model, ax=ax, title=title)
 
 fig.suptitle(f"Decision function using a {clf.__class__.__name__}")
 fig.tight_layout()

可以看到如果不進(jìn)行過(guò)采樣,那么少數(shù)類(lèi)基本上沒(méi)法區(qū)分。通過(guò)過(guò)采樣的技術(shù),少數(shù)類(lèi)得到了有效的區(qū)分。

SMOTE對(duì)所有的少數(shù)類(lèi)樣本平等對(duì)待,不考慮它們之間的分布密度。ADASYN考慮到每個(gè)少數(shù)類(lèi)樣本的鄰近樣本數(shù)量,使得對(duì)于那些鄰近樣本較少的少數(shù)類(lèi)樣本,生成更多的合成樣本,以便更好地覆蓋整個(gè)決策邊界。

但是這兩個(gè)算法還要根據(jù)實(shí)際應(yīng)用時(shí)選擇,比如上圖中黃色和藍(lán)色的決策邊界變化的影響需要實(shí)際測(cè)算后才能判斷那個(gè)算法更適合當(dāng)前的應(yīng)用。

責(zé)任編輯:華軒 來(lái)源: DeepHub IMBA
相關(guān)推薦

2018-04-20 11:33:22

不平衡數(shù)據(jù)數(shù)據(jù)集模型

2018-09-11 13:47:35

數(shù)據(jù)不平衡數(shù)據(jù)分布數(shù)據(jù)集

2016-12-13 11:48:05

數(shù)據(jù)處理不平衡數(shù)據(jù)

2021-01-04 10:40:37

Python不平衡數(shù)據(jù)機(jī)器學(xué)習(xí)

2023-09-29 22:51:22

數(shù)據(jù)不平衡Python機(jī)器學(xué)習(xí)

2019-02-25 08:35:22

機(jī)器學(xué)習(xí)數(shù)據(jù)模型

2021-06-06 22:41:30

人才技術(shù)預(yù)測(cè)不平衡

2017-03-20 09:25:10

機(jī)器學(xué)習(xí)采樣數(shù)據(jù)合成

2024-10-18 07:10:43

2020-10-06 10:44:16

機(jī)器學(xué)習(xí)不平衡數(shù)據(jù)算法

2019-03-27 08:51:38

機(jī)器學(xué)習(xí)類(lèi)失衡算法

2017-06-16 22:14:45

機(jī)器學(xué)習(xí)數(shù)據(jù)不平衡

2017-03-28 09:40:23

機(jī)器學(xué)習(xí)數(shù)據(jù)不平衡

2016-09-07 13:26:25

R語(yǔ)言不平衡數(shù)據(jù)

2018-06-11 16:20:22

數(shù)據(jù)不平衡數(shù)據(jù)集算法

2020-09-21 09:02:56

AI機(jī)器學(xué)習(xí)類(lèi)不平衡

2025-01-20 09:00:00

2022-05-06 09:48:56

機(jī)器學(xué)習(xí)樣本不平衡

2015-07-20 09:55:32

游戲設(shè)計(jì)平和性

2015-01-22 10:13:33

App StoreApp審核
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)