文章目錄[隱藏]
下采樣方法
ClusterCentroids
https://imbalanced-learn.org/stable/references/generated/imblearn.under_sampling.ClusterCentroids.html
ClusterCentroids是一種基於(yu) 聚類方法的欠采樣算法,通過生成聚類中心來進行欠采樣。
ClusterCentroids算法通過使用K均值算法,將大多數類別的樣本聚類為(wei) 一組,並用聚類中心替代該組的樣本。該算法通過將K均值算法擬合到大多數類別並使用N個(ge) 聚類中心的坐標作為(wei) 新的大多數類別樣本來保留N個(ge) 大多數類別的樣本。
EditedNearestNeighbours
https://imbalanced-learn.org/stable/references/generated/imblearn.under_sampling.EditedNearestNeighbours.html
EditedNearestNeighbours(ENN)是一種基於(yu) 欠采樣的方法,用於(yu) 處理類別不平衡問題。它通過刪除靠近決(jue) 策邊界的樣本來清理數據庫。
ENN算法的原理如下:
- 對於欲進行欠采樣的類別中的每個樣本,計算其最近鄰樣本。
- 如果最近鄰樣本與當前樣本的類別不一致,則將當前樣本從數據集中刪除。
通過這個(ge) 過程,ENN算法可以對數據集進行編輯,刪除那些與(yu) 其鄰近樣本不“足夠”一致的樣本。該算法通過考慮樣本周圍的鄰近樣本來判斷樣本是否應該被保留。在選擇標準方麵,ENN提供了兩(liang) 種可選的策略:
- 多數類選擇(kind_sel='mode'):隻有當所有最近鄰樣本都屬於與當前樣本相同的類別時,當前樣本才會被保留。
- 全部選擇(kind_sel='all'):隻要最近鄰樣本中有一個與當前樣本的類別不一致,當前樣本就會被刪除。
CondensedNearestNeighbour
https://imbalanced-learn.org/stable/references/generated/imblearn.under_sampling.CondensedNearestNeighbour.html
CondensedNearestNeighbour(CNN)是一種基於(yu) 欠采樣的方法,用於(yu) 處理類別不平衡問題。它使用最近鄰規則來迭代地決(jue) 定是否刪除樣本。
算法的原理如下:
- 將所有少數類樣本放入集合C。
- 從目標類別(欲進行欠采樣的類別)中添加一個樣本到集合C,並將該類別的所有其他樣本放入集合S。
- 逐個樣本地遍曆集合C,並使用最近鄰規則對每個樣本進行分類。
- 如果樣本被錯誤分類,將其添加到集合C中;否則不進行任何操作。
- 在集合C上重複上述步驟,直到沒有樣本需要添加為止。
CondensedNearestNeighbour算法可以生成一個(ge) 具有較少樣本數量的新樣本集,其中包含了原始數據集中的少數類樣本和一些被錯誤分類的樣本。這個(ge) 新樣本集可以用於(yu) 解決(jue) 類別不平衡問題,使得少數類樣本在整體(ti) 數據集中的比例更加平衡。
AllKNN
https://imbalanced-learn.org/stable/references/generated/imblearn.under_sampling.AllKNN.html
AllKNN算法會(hui) 多次應用ENN(Edited Nearest Neighbours)算法,並在每次迭代時改變最近鄰的數量。
與(yu) 之前的RepeatedEditedNearestNeighbours算法不同,AllKNN算法會(hui) 在每次迭代中增加內(nei) 部最近鄰算法的最近鄰數量。
通過這個(ge) 過程,AllKNN算法可以多次應用ENN算法,並逐步增加最近鄰的數量。這樣可以更加徹底地清除位於(yu) 類別邊界附近的噪聲樣本。
InstanceHardnessThreshold
https://imbalanced-learn.org/stable/references/generated/imblearn.under_sampling.InstanceHardnessThreshold.html
InstanceHardnessThreshold算法的原理是,首先使用一個(ge) 分類器對數據進行訓練,然後根據樣本的預測概率移除概率較低的樣本。
在該算法中,我們(men) 首先使用一個(ge) 分類器對數據進行訓練,訓練過程中分類器會(hui) 生成每個(ge) 樣本屬於(yu) 各個(ge) 類別的概率預測。然後根據預測概率,移除概率較低的樣本。
在使用InstanceHardnessThreshold算法時,我們(men) 需要設置兩(liang) 個(ge) 重要的參數。第一個(ge) 是estimator,它可以接受任何具有predict_proba方法的scikit-learn分類器。分類器的訓練使用交叉驗證來進行,可以通過參數cv設置交叉驗證的折數。
NearMiss
https://imbalanced-learn.org/stable/references/generated/imblearn.under_sampling.NearMiss.html
在使用NearMiss算法時,我們(men) 可以通過設置version參數來選擇不同的啟發式規則。例如,設置version=1表示使用第一種啟發式規則。
NearMiss算法的啟發式規則是基於(yu) 最近鄰算法的。因此,我們(men) 可以通過參數n_neighbors和n_neighbors_ver3來設置最近鄰的數量。其中,n_neighbors參數用於(yu) 計算樣本與(yu) 鄰居之間的平均距離,而n_neighbors_ver3參數用於(yu) 對感興(xing) 趣的樣本進行預選擇。
NeighbourhoodCleaningRule
https://imbalanced-learn.org/stable/references/generated/imblearn.under_sampling.NeighbourhoodCleaningRule.html
NeighbourhoodCleaningRule算法主要用於(yu) 數據清理而不是數據壓縮。它使用了EditedNearestNeighbours算法和k-NN算法來移除數據集中的噪聲樣本。
在NeighbourhoodCleaningRule算法中,首先使用EditedNearestNeighbours算法生成一個(ge) 樣本集合,該樣本集合包含了應該被移除的樣本。然後,使用3最近鄰分類器對數據集進行分類,並將分類器輸出的樣本集合與(yu) 前麵生成的樣本集合取並集,得到最終需要被移除的樣本集合。
OneSidedSelection
https://imbalanced-learn.org/stable/references/generated/imblearn.under_sampling.OneSidedSelection.html
OneSidedSelection算法使用TomekLinks方法來移除噪聲樣本。此外,該算法對所有樣本應用了1最近鄰規則,將被錯誤分類的樣本添加到集合中。
上采樣方法
SMOTE
https://imbalanced-learn.org/stable/references/generated/imblearn.over_sampling.SMOTE.html
SMOTE(Synthetic Minority Over-sampling Technique)是一種常用的過采樣方法,用於(yu) 解決(jue) 類別不平衡問題。它通過生成合成樣本來增加少數類樣本的數量,以平衡不同類別之間的數據分布。
SMOTE的原理基於(yu) 對少數類樣本的插值。具體(ti) 而言,它首先隨機選擇一個(ge) 少數類樣本作為(wei) 起始點,然後從(cong) 該樣本的近鄰中隨機選擇一個(ge) 樣本作為(wei) 參考點。然後,SMOTE通過在這兩(liang) 個(ge) 樣本之間的線段上生成新的合成樣本來增加數據集的樣本數量。
SMOTENC
https://imbalanced-learn.org/stable/references/generated/imblearn.over_sampling.SMOTENC.html
SMOTE-NC(SMOTE for Nominal and Continuous features)是一種用於(yu) 處理同時包含數值和分類特征的數據集的過采樣方法。它是對傳(chuan) 統的SMOTE算法的擴展,能夠處理同時存在數值和分類特征的情況,但不適用於(yu) 僅(jin) 包含分類特征的數據集。
SMOTE-NC的原理與(yu) SMOTE類似,但在生成合成樣本時有所不同。它的生成過程如下:
- 對於選定的起始點和參考點,計算它們之間的差距,得到一個向量。
- 將連續特征(數值特征)的差距乘以一個隨機數,得到新樣本的位置。這一步與傳統的SMOTE相同。
- 對於分類特征,隨機選擇起始點或參考點的特征值作為新合成樣本的特征值。
- 對於連續特征和分類特征,分別使用插值和隨機選擇的方式來生成新樣本的特征值。
通過這種方式,SMOTE-NC能夠處理同時包含數值和分類特征的數據集,並生成新的合成樣本來增加少數類樣本的數量。這樣可以在平衡數據集的同時保持數值和分類特征的一致性。
SMOTEN
https://imbalanced-learn.org/stable/references/generated/imblearn.over_sampling.SMOTEN.html
SMOTEN(Synthetic Minority Over-sampling Technique for Nominal)是一種專(zhuan) 門針對分類特征的過采樣方法,用於(yu) 解決(jue) 類別不平衡問題。它是對SMOTE算法的擴展,適用於(yu) 僅(jin) 包含分類特征的數據集。
SMOTEN的原理與(yu) SMOTE類似,但在生成合成樣本時有所不同。它的生成過程如下:
- 對於選定的起始點和參考點,計算它們之間的差距,得到一個向量。
- 對於每個分類特征,統計起始點和參考點之間相應特征的唯一值(類別)的頻率。
- 根據特征的頻率,確定新樣本的位置。具體而言,對於每個分類特征,隨機選擇一個起始點或參考點的類別,並在該類別中隨機選擇一個值作為新合成樣本的特征值。
- 對於連續特征,采用傳統的SMOTE方式,通過在差距向量上乘以一個隨機數,確定新樣本的位置,並使用插值來生成新樣本的特征值。
ADASYN
https://imbalanced-learn.org/stable/references/generated/imblearn.over_sampling.ADASYN.html
ADASYN(Adaptive Synthetic)是一種基於(yu) 自適應合成的過采樣算法。它與(yu) SMOTE方法相似,但根據類別的局部分布估計生成不同數量的樣本。
ADASYN根據樣本之間的差距,計算每個(ge) 樣本的密度因子。密度因子表示該樣本周圍少數類樣本的密度。較低的密度因子表示該樣本所屬的區域缺乏少數類樣本,而較高的密度因子表示該樣本周圍有更多的少數類樣本。
BorderlineSMOTE
https://imbalanced-learn.org/stable/references/generated/imblearn.over_sampling.BorderlineSMOTE.html
BorderlineSMOTE(邊界SMOTE)是一種過采樣算法,是對原始SMOTE算法的改進和擴展。它能夠檢測並利用邊界樣本生成新的合成樣本,以解決(jue) 類別不平衡問題。
BorderlineSMOTE在SMOTE算法的基礎上進行了改進,通過識別邊界樣本來更有針對性地生成新的合成樣本。邊界樣本是指那些位於(yu) 多數類樣本和少數類樣本之間的樣本,它們(men) 往往是難以分類的樣本。通過識別並處理這些邊界樣本,BorderlineSMOTE能夠提高分類器對難以分類樣本的識別能力。
KMeansSMOTE
https://imbalanced-learn.org/stable/references/generated/imblearn.over_sampling.KMeansSMOTE.html
KMeansSMOTE的關(guan) 鍵在於(yu) 使用KMeans聚類將數據樣本劃分為(wei) 不同的簇,並通過識別邊界樣本來有針對性地進行合成樣本的生成。這種方法可以提高合成樣本的多樣性和真實性,因為(wei) 它僅(jin) 在邊界樣本周圍進行過采樣,而不是在整個(ge) 少數類樣本集上進行。
SVMSMOTE
https://imbalanced-learn.org/stable/references/generated/imblearn.over_sampling.SVMSMOTE.html
SVMSMOTE是一種基於(yu) SMOTE算法的變體(ti) ,其特點是利用支持向量機(SVM)算法來檢測用於(yu) 生成新的合成樣本的樣本。通過將數據集中的少數類樣本劃分為(wei) 支持向量和非支持向量,SVMSMOTE能夠更準確地選擇樣本進行合成。對於(yu) 每個(ge) 少數類支持向量,它選擇其最近鄰中的一個(ge) 作為(wei) 參考點,並通過計算其與(yu) 參考點之間的差距來生成新的合成樣本。
評論已經被關(guan) 閉。