樣本不平衡處理
阿新 • • 發佈:2018-11-07
一.下采樣
對於樣本不均衡來說,使得兩個樣本(向少的樣本靠齊)同樣的少.將多的資料進行裁剪使得樣本最後可以均衡,具體的程式碼設計如下:
#以二分類為例 #對整個樣本進行分開 one_data=data[data['label']==1].index zero_data=data[data['label'==0]].index #將多的樣本進行隨機的抽樣(raplace代表著不重複抽取) one_sample=np.random.choice(one_data,len(zero_data),replace=False) under_sample_index=np.concatenate([zero_data,np.array(one_sample)]) data.loc[under_sample_index]
二.過取樣
對於樣本不均衡來說,使得兩個樣本(向多的樣本靠齊)同樣的多(製造多的樣本)
from imblearn.over_sampling import SMOTE #沒有用pip install imblearn oversampler=SMOTE(random_state=0) os_features,os_labels=oversampler.fit_sample(features_train,labels_train)