样本不平衡处理
一.下采样
对于样本不均衡来说,使得两个样本(向少的样本靠齐)同样的少.将多的数据进行裁剪使得样本最后可以均衡,具体的代码设计如下:
#以二分类为例 #对整个样本进行分开 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)