如何通过修改训练数据集来提高任何分类算法对少数类别的准确性?

在许多训练数据集中,类别分布是不平衡的,即一种类别非常频繁(例如95%),而另一种类别很少见(例如5%)。在这种应用中,将所有测试案例分配给多数类别的简单分类器可以获得非常高的准确性。然而,尽管少数类别通常比多数类别更重要,简单分类器却无法预测任何少数类别的案例。

那么,有没有办法仅通过修改训练数据集来提高对少数类别的准确性?还是我们也需要修改分类算法呢?


回答:

这是不平衡分类的问题。以下是处理不平衡数据集的方法。

1.欠采样2.过采样3.合成数据生成4.成本敏感学习

1.欠采样

这种方法针对多数类别进行操作。它通过减少多数类别的观察数量来使数据集平衡。当数据集很大时,这种方法最适合使用,减少训练样本的数量有助于改善运行时间和存储问题。欠采样方法分为两种类型:随机和信息性欠采样。

  1. 过采样

这种方法针对少数类别进行操作。它通过复制少数类别的观察来平衡数据。也称为上采样。类似于欠采样,这种方法也可以分为两种类型:随机过采样和信息性过采样。

  1. 合成数据生成

简单来说,这种方法不是复制并添加少数类别的观察,而是通过生成人工数据来克服不平衡问题。这也是一种过采样技术。

关于合成数据生成,合成少数类过采样技术(SMOTE)是一种强大且广泛使用的方法。SMOTE算法根据少数样本的特征空间(而不是数据空间)相似性创建人工数据。我们也可以说,它生成一组随机的少数类别观察,以将分类器的学习偏差转向少数类别。

  1. 成本敏感学习(CSL)这也是处理不平衡数据的分类问题中常用的一种方法。这是一种有趣的方法。简单来说,这种方法评估与错误分类观察相关的成本。

它不创建平衡的数据分布。相反,它通过使用成本矩阵来突出不平衡学习问题,这些矩阵描述了特定情境下错误分类的成本。近期研究表明,成本敏感学习在许多情况下都优于采样方法。因此,这种方法为采样方法提供了一个可能的替代方案。

要在R中构建这些,请参考链接 https://www.analyticsvidhya.com/blog/2016/03/practical-guide-deal-imbalanced-classification-problems/

Related Posts

为什么我们在K-means聚类方法中使用kmeans.fit函数?

我在一个视频中使用K-means聚类技术,但我不明白为…

如何获取Keras中ImageDataGenerator的.flow_from_directory函数扫描的类名?

我想制作一个用户友好的GUI图像分类器,用户只需指向数…

如何查看每个词的tf-idf得分

我试图了解文档中每个词的tf-idf得分。然而,它只返…

如何修复 ‘ValueError: Found input variables with inconsistent numbers of samples: [32979, 21602]’?

我在制作一个用于情感分析的逻辑回归模型时遇到了这个问题…

如何向神经网络输入两个不同大小的输入?

我想向神经网络输入两个数据集。第一个数据集(元素)具有…

逻辑回归与机器学习有何关联

我们正在开会讨论聘请一位我们信任的顾问来做机器学习。一…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注