样本不平衡处理

一.下采样

  对于样本不均衡来说,使得两个样本(向少的样本靠齐)同样的少.将多的数据进行裁剪使得样本最后可以均衡,具体的代码设计如下:

#以二分类为例
#对整个样本进行分开
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)

猜你喜欢

转载自www.cnblogs.com/yskn/p/9826003.html
今日推荐