合辑传送门 -->> 数据分析-合辑
在分类问题的数据中,很容易出现正反数据集数量存在极大的差距,这类数据直接用于训练不利于模型的构架,所以我们需要对数据进行些许处理。
很容易想到,合理的数据集应该是正反数据集数量应接近,那就存在两种策略:
下采样策略:把数量多的减少到与数量少的相近
上采样策略:把数量少的增加到与数量多的相近
下采样策略
这个比较好理解,如下图
![](https://img-blog.csdnimg.cn/20190808013028192.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zOTczOTM0Mg==,size_16,color_FFFFFF,t_70)
上采样策略
这里主要说一下其中的一种策略:SMOTE模型
(1)对于少数类中每一个样本x,以欧氏距离为标准计算它到少数类样本集中所有样本的距离,得到其k近邻
(2)根据样本不平衡比例设置一个确定采样倍率N,对于每一个少数类样本x,从其k近邻中随机选择若干个样本,假设选择的近邻为xn
(3)对于每一个随机选出来的近邻xn,分别与原样本按照如下的公式构建新的样本
![](https://img-blog.csdnimg.cn/20190808234754269.png)
![](https://img-blog.csdnimg.cn/20190808234823860.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zOTczOTM0Mg==,size_16,color_FFFFFF,t_70)
注意:
【1】采样倍率N应小于少数类样本x的具体数量-1。因为一个样本的K近邻的数目受到样本数的限制。
【2】在python中可以通过调用 imblearn库来便捷实现
from imblearn.over_sampling import SMOTE