数据不平衡的处理方法

数据不平衡经常出现在分类问题上,数据不平衡指的是在数据集中不同类别的样本数量差距很大,比如,在病人是否得癌症的数据集上,可能绝大部分的样本类别都是健康的,只有极少部分样本类别是患病的。下面介绍几个常用的处理数据不平衡的方法:
1、上采样
SMOTE算法是一种简单有效的上采样方法,该方法类似KNN算法,首先给类别数量少的样本随机选择出几个近邻样本,并且在该样本与这些近邻样本的连线上随机采样,生成无重复的新的样本。
2、下采样
下采样是通过丢弃部分大类样本的方法,使得数据达到平衡状态。
3、分类器评估指标
在数据平衡的分类问题中,分类器好坏的评估指标常用准确率,但是对于数据不平衡的分类问题,准确率不再是恰当的评估指标。所以针对不平衡数据分类问题,常用f1-score、ROC-AUC曲线。
f1-score计算公式:
数据不平衡的处理方法_第1张图片
ROC-AUC曲线:
ROC曲线的x轴是FPR(假阳性率)、y轴是TPR(真阳性率、召回率)
AUC是ROC曲线与x轴所围成的面积
数据不平衡的处理方法_第2张图片
数据不平衡的处理方法_第3张图片
TP:将正类预测为正类
FN:将正类预测为负类
FP:将负类预测为正类
TN:将负类预测为负类

4、G-Mean
先计算特异度(specificity),再计算G-Mean
在这里插入图片描述
5、惩罚算法
使用惩罚学习算法,提高少数类的分类错误的成本,在训练期间使用参数class_weight='balanced’来惩罚少数群体类的错误,其数量与其代表性不足的数量成正比。
6、使用基于树的算法
基于树的算法在数据不平衡数据集上表现良好,因为它们的层次结构允许它们从两个类中学习信号。

你可能感兴趣的:(机器学习)