针对不平衡学习问题,主要有以下三种常见方式处理,总结如下,其中多数类样本统一用Smax表示,少数类样本统一用Smin表示:
1、欠抽样
1.1 随机欠抽样
随机欠采样顾名思义即从多数类Smax中随机选择少量样本E再合 并原有少数类样本作为新的训练数据集,新数据集为Smin+E,随机欠采样有两种类型分别为有放回和无放回两种,无放回欠采样在对多数类某样本被采 样后不会再被重复采样,有放回采样则有可能。
缺点:丢失了一下信息,造成训练模型时信息的缺失。
1.2 EasyEnsemble算法
将样本分为Smax和Smin,在Smax样本集中进行又放回抽样,生成N份子集,将每份子集与Smin进行合并生成N份训练集,通过对N份训练集生成N个模型,最终通过Bagging方式获取预测结果。
1.3 BalanceCascade算法
BalanceCascade算法:
(1)从Smax中无放回抽取N个样本
(2)将N个样本与Smin合并后生成训练集
(3)针对新的训练集得到模型M,利用模型M对Smax中的每个样本Xi进行预测,若预测证正确,则从Smax剔除该样本,即Smax-Xi
(4)重复以上步骤,直到满足某个停止条件。
2、过抽样
2.1 随机过抽样
通过多次有放回随机采样从少数类Smin中抽取数据集E,采样的数量要大于原有少数类的数量,最终的训练集为Smax+E。
缺点:过采样扩大了数据集,训练模型的复杂度会加大,而且有可能造成过拟合的情况。
2.2 SMOTE算法
SMOTE全称是Synthetic Minority Oversampling Technique即合成少数类过采样技术,SMOTE算法的基本思想SMOTE算法的基本思想是对少数类样本进行分析并根据少数类样本人工合成新样本添加到数据集中,算法流程如下:
(1)对于Smin中的每一个样本Xi,计算它到Smin中每一个 样本的欧氏距离
(2)根据过采样倍率,计算每一个样本Xi的k近邻Xj
(3)根据公式Xnew=Xi+rand(0,1)*Xj生成新的Smin样本
缺点:
1、该算法主要存在两方面的问题:一是在近邻选择时,存在一定的盲目性。从上面的算法流程可以看出,在算法执行过程中,需要确定K值,即选择多少个近邻样本,这需要用户自行解决。从K值的定义可以看出,K值的下限是M值(M值为从K个近邻中随机挑选出的近邻样本的个数,且有M< K),M的大小可以根据负类样本数量、正类样本数量和数据集最后需要达到的平衡率决定。但K值的上限没有办法确定,只能根据具体的数据集去反复测试。因此如何确定K值,才能使算法达到最优这是未知的。
2、该算法无法克服非平衡数据集的数据分布问题,容易产生分布边缘化问题。由于负类样本的分布决定了其可选择的近邻,如果一个负类样本处在负类样本集的分布边缘,则由此负类样本和相邻样本产生的“人造”样本也会处在这个边缘,且会越来越边缘化,从而模糊了正类样本和负类样本的边界,而且使边界变得越来越模糊。这种边界模糊性,虽然使数据集的平衡性得到了改善,但加大了分类算法进行分类的难度.
2.3 Borderline-SMOTE算法
(1)计算Smin中的每个样本Xi到(Smax+Smin)中每一个样本的k近邻Sknn
(2)Sknn中超过一半是多数类样本,则Xi加入Danger集合
(3)对Smin中的每一个Xi应用以上两步
(4)对Danger集合应用SMOTE算法
2.4 ADASYN(Adaptive synthetic sampling)算法
ADASYN的解决思路是根据数据分布情况为不同小众样本生成不同数量的新样本。
(1)首先根据最终的平衡程度设定总共需要生成的新小众样本数量G
(2)然后为每个小众样本Xi计算分布比例Fi,其中Fi是Xi的K近邻中大众样本的数量
(3)Z用来归一化使得∑Fi=1,最后为小众样本Xi生成新样本的个数为Gi=Fi×G,确定个数后再利用SMOTE生成新样本。
3、代价敏感学习
代价敏感学习算法(Cost-Sensitive Learning)主要从算法层面上解决不平衡数据学习,代价敏感学习方法的核心要素是代价矩阵,我们注意到在实际的应用中不同类型的误分类情况导致的代价是不一样的,例如在医疗中,“将病 人误疹为健康人”和“将健康人误疹为病人”的代价不同。
3.1 AdaCost算法
AdaCost算法修改了Adaboost算法的权重更新策略,其基本思想是对于代价高的误分类样本大大地提高其权重,而对于代价高的正确分类样 本适当地降低其权重,使其权重降低相对较小。总体思想是代价高样本权重增加得大降低得慢。
3.2 基于模型的代价敏感学习,
从模型出发,着眼于对某一具体学习方法的改造,使之能适应不平衡数据下的学习,研究者们针对不同的学习模型如感知机,支持向量机,决策树,神经网络等分别提出了其代价敏感的版本。以代价敏感的决策树为例,可从三个方面对其进行改进以适应不平衡数据的学习,这三个方面分别是决策阈值的选择方面、分裂标准的选择方面、剪枝方面,这三个方面中都可以将代价矩阵引入,具体实现算法可参考参考文献中的相关文章。
机器学习中不平衡学习方法总结一(理论)
最新推荐文章于 2024-06-28 19:37:47 发布