✌ 过采样与欠采样
1、✌ 采样介绍
在分类问题中,有存在正反例数目差异较大的情况,这种情况叫做类别不平衡。
针对这种问题,解决方式有2种:假设正例数量大,反例数目极小。
1、减少正例的数量,使得数据平衡,再进一步分类,这种情况属于“欠采样”;
2、增加反例的数目平衡数据,再分类,这种称为“过采样”;
2、✌ 过采样
2.1 随机采样:
增加少数样本,随机在原来的少数样本中随机抽取样本,直至与多数样本数相等
2.2 SMOTE采样:
合成的策略是对每个少数类样本a,从它的最近邻中随机选一个样本b,然后在a,b之间的连线上随机选一点作为新合成的少数类样本。
3、✌ 欠采样
与过采样相反,抛弃过多的多数样本
4、✌ 代码演示
1.1 ✌ 创建数据
x=np.array([[1,2],[3,5],[3,5],[2,4],[5,9],[8,7],[13,5],[1,32],[1,8],[5,3]]) y=np.array([0,0,0,0,0,1,1,1,1,1]) from collections import Counter Counter(y)
1.2 ✌ 随机采样
from imblearn.over_sampling import RandomOverSampler ros=RandomOverSampler(random_state=0) x_over,y_over=ros.fit_resample(x,y) Counter(y_over)
1.3 ✌ SMOTE采样
from imblearn.over_sampling import SMOTE smote=SMOTE(random_state=0) x_smote,y_smote=smote.fit_resample(x,y) y_smote
1.4 ✌ 欠采样
from imblearn.under_sampling import RandomUnderSampler rus=RandomUnderSampler(random_state=0) x_under,y_under=rus.fit_resample(x,y) y_under • 1 • 2 • 3 • 4