0
点赞
收藏
分享

微信扫一扫

数据处理 过采样与欠采样 SMOTE与随机采样 达到样本均衡化


文章目录

  • ​​✌ 过采样与欠采样​​
  • ​​1、✌ 采样介绍​​
  • ​​2、✌ 过采样​​
  • ​​2.1 随机采样:​​
  • ​​2.2 SMOTE采样:​​
  • ​​3、✌ 欠采样​​
  • ​​4、✌ 代码演示​​
  • ​​1.1 ✌ 创建数据​​
  • ​​1.2 ✌ 随机采样​​
  • ​​1.3 ✌ SMOTE采样​​
  • ​​1.4 ✌ 欠采样​​

✌ 过采样与欠采样

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)

数据处理 过采样与欠采样 SMOTE与随机采样 达到样本均衡化_深度学习

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)

数据处理 过采样与欠采样 SMOTE与随机采样 达到样本均衡化_深度学习_02

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

数据处理 过采样与欠采样 SMOTE与随机采样 达到样本均衡化_大数据_03

1.4 ✌ 欠采样

from imblearn.under_sampling import RandomUnderSampler
rus=RandomUnderSampler(random_state=0)
x_under,y_under=rus.fit_resample(x,y)
y_under

数据处理 过采样与欠采样 SMOTE与随机采样 达到样本均衡化_数据分析_04


举报

相关推荐

hive 随机采样

0 条评论