Python中的過采樣方法有許多,其中最常用的方法是SMOTE和ADASYN。
SMOTE是Synthetic Minority Over-sampling Technique的縮寫,即合成少數類過采樣技術。SMOTE算法的基本思想是對于少數類樣本的每一個樣本xi,從它的k近鄰中隨機選擇一個樣本xj,然后在xi和xj之間的連線上隨機生成一個新樣本。
from imblearn.over_sampling import SMOTE smote = SMOTE(k_neighbors=5) X_resampled, y_resampled = smote.fit_sample(X, y)
ADASYN是Adaptive Synthetic Sampling的縮寫,即自適應合成采樣。ADASYN算法與SMOTE算法類似,也是首先選取少數類樣本,再合成新的少數類樣本,但是ADASYN在合成新樣本時,會根據每個少數類樣本的分布情況,給予不同的權重,從而實現自適應采樣。相比之下,ADASYN的效果更好。
from imblearn.over_sampling import ADASYN adasyn = ADASYN(ratio='auto') X_resampled, y_resampled = adasyn.fit_sample(X, y)
使用Python進行過采樣需要先安裝 imblearn 庫,可以在終端中使用以下語句進行安裝:
pip install imblearn