6个策略处理不平衡数据

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/DataCastle/article/details/86288840

数据不平衡问题被认为是数据挖掘和机器学习领域的主要问题之一,因为大多数机器学习算法假设数据是均匀分布的。

在数据不平衡的情况下,多数类主导少数类,机器学习分类器会更偏向于多数类。

这导致少数群体的分类不良,分类器甚至可以将所有测试数据预测为多数类。

在这篇文章当中你可以获得7种处理不平衡数据的方法。

什么是不平衡数据?

不平衡数据通常是指分类问题的问题,其中类没有被平等地表示。

不平衡数据集的常见业务问题的其他示例如下:

·用于识别客户流失的数据集,绝大多数客户将继续使用该服务。具体而言,流失率低于2%的电信公司。

·用于识别医疗诊断等中罕见疾病的数据集

·像地震这样的自然灾害

扫描二维码关注公众号,回复: 4868075 查看本文章

接下来介绍6种处理不平衡数据的策略:

1、收集更多数据

这个策略看起来有一点好笑,因此容易被忽视。

如果你恰好遇到不平衡数据的问题,可以花一点时间考虑一下你是否能够收集有关问题的更多数据。

加大数据集可能会产生新的分类并且在分类上会有更平等的表示,当我们查看重新采样数据集时,更多次要类的示例可能会有用。

2、尝试更多算法

很多人都有自己喜欢的算法,但我强烈建议不要在每一个问题上面都使用你喜欢的算法。

至少在给定的问题上多尝试几种算法以寻找跟问题最相匹配的那一个算法。

值得一提的是,决策树在不平衡的数据集上通常表现良好,查看用于创建树的类变量的拆分规则可以强制解决这两个类。

你可以尝试一些流行的决策树算法,如C4.5,C5.0,CART和随机森林。

3、使用正确的评估指标

准确性不是使用不平衡数据集时使用的指标,它具有一定的误导性。

对使用不平衡数据生成的模型应用不适当的评估指标可能会导致严重的错误。如果使用精度来测量模型的良好性,则将所有测试样本分类为“0”的模型将具有极好的准确度(99.8%),但显然,该模型不会为我们提供任何有价值的信息。

在这种情况下,可以应用其他替代评估指标,例如:

·混淆矩阵:将预测分解为表格,显示正确的预测(对角线)和不正确的预测类型(分配了哪些类别的错误预测)。

·精度:分类器精确度的度量。

·回忆:分类器完整性的度量

·F1分数(或F分数):精确度和召回率的加权平均值。

·MCC:观察到的和预测的二元分类之间的相关系数。

·AUC:真阳性率与假阳性率之间的关系。

我还建议你看看以下内容:

·Kappa(或Cohen的kappa):分类准确性由数据类的不平衡归一化。

·ROC曲线:与精确度和召回一样,精确度分为灵敏度和特异性,可以根据这些值的平衡阈值选择模型。

4、重新采集数据样本

修复不平衡数据集另外一种简单方法就是通过对少数类的实例进行过采样或对多数类的实例进行欠采样来平衡它们。

·过采样:从代表性不足的类中添加实例的副本或更正式的替换采样

·欠采样:从过度表示的类中删除实例

这允许我们创建一个简单的平衡的数据集,理论上不应该导致分类器偏向于一个类或另一个类。

然而,在实践中,这些简单的抽样方法存在缺陷。

过度采样少数可能导致模型过度拟合,因为它将引入重复实例,从已经很小的实例池中提取。

同样,对大多数数据进行欠采样最终会遗漏出两个类之间存在重要差异的重要实例。

因此,在实例运用中,你可以在不平衡的数据集上尝试这两种方法,以确定哪种方法的选择能够提高你的精确度。

一些经验法则:

·拥有大量数据时,采用欠采样进行测试;

·拥有数据量较少,考虑过采样进行测试;

·考虑测试随机和非随机抽样方案;

·考虑测试不同的重采样比率。

5、合成样本

当数据稀缺时,可以从原始数据样本种人工合成样本。通过这种方式,它减少了少数样本中的偏差,并有助于将决策边界转向不易分类的少数样本。

最常用的合成数据的算法时SMOTE 和ADASYN 。

SMOTE算法仅从少数样本生成合成数据,了解有关SMOTE的更多信息,请参阅论文“ SMOTE:Synthetic Minority Over-sampling Technique ”。

ADASYN算法使用少数样本的加权分布,这些样本与大多数样本没有很好地分离。

生成合成样本的一种简单方法是从少数类中的实例中随机采样属性。

你可以凭经验对数据集进行采样,也可以使用Naive Bayes等方法在反向运行时独立地对每个属性采样。但可能引发的问题是你无法保留属性之间的非线性关系。

您可以使用系统算法生成合成样本。最流行的此类算法称为SMOTE或合成少数过采样技术。

在大多数情况下,SMOTE和MSMOTE等合成技术的性能将优于传统的过采样和欠采样方法。

SMOTE工作原理是从次要类创建合成样本,而不是创建副本。该算法选择两个或更多个类似的实例(使用距离测量)并且通过差异内的相邻实例的随机量一次扰动实例一个属性。

它实际上通过形成相邻实例的凸组合来创建少数类的新实例。

如下图所示,它有效地在要素空间中的少数点之间绘制线条,并沿着这些线条绘制样本。

这使得我们可以平衡我们的数据集而不会过度拟合,因为我们创建新的合成示例而不是使用重复。

然而,这并不能防止所有过度拟合,因为这些仍然是从现有数据点创建的。

6、 异常检测

在更极端的情况下,最好在异常检测的背景下考虑分类。

在异常检测中,我们假设存在数据点的“正常”分布,并且任何与该分布充分偏离的异常都是异常的。

当我们将分类问题重构为异常检测问题时,我们将多数类视为点的“正态”分布,将少数类视为异常。

有许多异常检测算法,如聚类方法,单类SVM和隔离森林。

当面对不平衡的数据集时,没有一站式的解决方案来提高预测模型的准确性。

根据不平衡数据集的特征,最有效的技术会有所不同。我们需要尝试多种方法来找出最适合数据集的处理方法。

想了解更多数据科学方面的有关知识,欢迎关注微信公众号:DC学习助手

猜你喜欢

转载自blog.csdn.net/DataCastle/article/details/86288840