CDA数据分析师

CDA数据分析师

考试报名
考试报名
考试内容
考试大纲
在线客服
返回顶部

不平衡数据集处理

2023-05-23

不平衡数据集

不平衡数据集是指数据集中各个类别下的样本数量相差很大,比如,二分类数据集中,有0和1两个类别,其中0类样本占90%,而1类样本占10%;三分类样本中,有0类、1类和2类,其中,0类样本占75%,1类样本占20%,2类样本占5%。
数据不平衡的情况是常见且合理的,比如在银行贷款违约的识别中,绝大多数的交易是正常的,只有少部分属于违约客户;在进行客户是否会流失的判断时,直接使用不平衡数据建立模型时,可能会对多数类样本过拟合,而对少数类样本欠拟合,且当分类器将所有样本均划分为多数类样本时,尽管分类器的准确率很高,但实际上是一个无效的分类器。
不平衡数据集的处理方法

从数据角度出发,用来处理不平衡数据的方法主要是采样,包括欠采样和过采样以及一些改进的方法。从算法角度出发,主要是基于代价敏感学习的算法,代表算法有adacost。
从数据角度处理不平衡数据

(1)随机采样
1)随机过采样(上采样)
针对不平衡数据,随机过采样的基本思想是从少数类样本中进行随机采样,以此来增加少数类样本的数量。
2)随机欠采样(下采样)
针对不平衡数据,随机欠采样的基本思想是从多数类样本中随机选取少量样本,再与少数类样本合并作为新的训练数据集。
3)随机采样的优缺点
随机采样的优点就是简单易懂,对于过采样而言,其缺点是数据集中会存在一部分重复样本,训练出的模型可能存在过拟合;对于欠采样而言,缺点是存在信息丢失,只使用了部分数据集,导致模型无法捕捉到全部数据信息。
(2)过采样的改进方法
相对于随机过采样法,还有以下几种改进的过采样方法
1)SMOTE
SMOTE算法的基本思想是为少数类样本人工合成新样本并添加到数据集中,具体过程如下:
对于少数类中每一个样本x,计算该点与少数类中其他样本点的距离,得到最近的k个近邻
根据样本不平衡比例设置一个采样比例以确定采样倍率,对于每一个少数类样本x,从其k近邻中随机选择若干个样本,假设选择的近邻为x'
对于每一个随机选出的近邻x',分别与原样本按照如下的公式构建新的样本
xnew=x+rand(0,1) ∗ (x′−x)

SMOTE算法的缺点包括两方面,一方面是如果选取的少数类样本周围都是少数类样本,则新合成的样本不会提供太多有用信息。就像SVM中远离margin的点对决策边界影响不大;另一方面是如果选取的少数类样本周围都是多数类样本,这类的样本可能是噪声,则新合成的样本会与周围的多数类样本产生大部分重叠,导致分类困难。

2)Borderline-SMOTE
原始SMOTE算法的对所有少数类样本都是一视同仁的,我们希望新合成的少数类样本能处于两个类别的边界附近,因为在实际建模过程中那些处于边界位置的样本更容易被错分,因此利用边界位置的样本信息产生新样本可以给模型带来更大的体征,能提供足够的信息用以分类,即Borderline SMOTE算法做的事情。判断边界的一个简单的规则为:如果K近邻中有一半以上是多数类样本,则这部分少数类为边界样本。简单来讲就是只为那些周围大部分是多数类样本的少数类样本生成新样本。
假设a为少数类中的一个样本,此时少数类的样本分为三类(依据为k_neighbors),如下图所示:
(i) 噪音样本(noise), 该少数类的所有最近邻样本都来自于不同于样本a的其他类别:
(ii) 危险样本(in danger), 至少一半的最近邻样本来自于同一类(不同于a的类别);
(iii) 安全样本(safe), 所有的最近邻样本都来自于同一个类。


然后对危险样本(即边界样本)使用SMOTE算法得到一系列新样本。具体来讲,Borderline-SMOTE1和Borderline-SMOTE2,Borderline-SMOTE1在对边界样本点生成新样本时,是在m近邻(m_neighbors)随机选择少数类样本(与SMOTE相同),Borderline-SMOTE2则是在m近邻(m_neighbors)中的任意一个样本(不关注样本类别)
3)ADASYN(自适应综合过采样)
ADASYN方法的主要思想是根据数据分布情况,为不同的少数类样本生成不同数量的新样本。首先根据最终的平衡程度设定总共需要生成的新少数类样本数量 ,然后为每个少数类样本x计算分布比例。具体过程如下:
计算不平衡度:记少数类样本为ms,多数类为ml,则不平衡度为 d = ms / ml,则d∈(0,1);
计算需要合成的样本数量:G = (ml - ms)* b,b∈[0,1],当b = 1时,即G等于少数类和多数类的差值,此时,合成数据后的多数类个数和少数类数据正好平衡;
对每个属于少数类的样本用欧式距离计算k个邻居,△为k个邻居中属于多数类的样本数目,记比例为r,r = △ / k,r∈[0,1];
根据上一步过程,得到每一个少数类样本的 ri(k个邻居中,多数类样本所占的比利) ,用计算每个少数类样本的周围多数类的情况
计算每个少数类样本需要合成的样本数目;
在每个待合成的少数类样本周围k个邻居中选择1个少数类样本,根据等式进行合成;
重复上一步的过程,直到完成每个少数类样本所需合成的数目为止。
(3)欠采样的改进方法
1)EasyEnsemble
从多数类中有放回的随机采样n次,每次选取与少数类数目近似的样本量,那么,可以得到n 个样本集合记作{ },然后其中的每一份与少数类样本结合组成n个训练样本{},然后在每一个训练集上得到一个模型,最后取这n 个模型的均值作为结果。
2)BalanceCascade
先通过一次下采样产生训练集,训练一个分类器,对于那些分类正确的多数类样本不放回,然后对这个更小的多数类样本下采样产生训练集,训练第二个分类器,以此类推,最终组合所有分类器的结果得到最终结果。
3)NearMiss
NearMiss方法是利用距离远近剔除多数类样本的一类方法,实际操作中也是借助kNN,总结起来有以下几类:
NearMiss-1:在多数类样本中选择与最近的3个少数类样本的平均距离最小的样本。
NearMiss-2:在多数类样本中选择与最远的3个少数类样本的平均距离最小的样本。
NearMiss-3:对于每个少数类样本,选择离它最近的给定数量的多数类样本。
NearMiss-1和NearMiss-2方法的描述仅有一字之差,但其含义是完全不同的:NearMiss-1考虑的是与最近的3个少数类样本的平均距离,是局部的;NearMiss-2考虑的是与最远的3个少数类样本的平均距离,是全局的。
NearMiss-1方法得到的多数类样本分布也是“不均衡”的,它倾向于在比较集中的少数类附近找到更多的多数类样本,而在孤立的(或者说是离群的)少数类附近找到更少的多数类样本,原因是NearMiss-1方法考虑的局部性质和平均距离。
NearMiss-3方法则会使得每一个少数类样本附近都有足够多的多数类样本,显然这会使得模型的精确度高、召回率低。
论文中有对这几种方法的比较,得到的结论是NearMiss-2的效果最好,不过这也是需要综合考虑数据集和采样比例的不同造成的影响。
参考链接:
https://blog.csdn.net/weixin_40118768/article/details/80226423

https://www.cnblogs.com/kamekin/p/9824294.html

https://blog.csdn.net/bigbigship/article/details/51348768

http://t.zoukankan.com/zcjcsl-p-10472771.html


完 谢谢观看