对于任何分类算法,我们如何修改训练数据集以在少数类别上获得更好的准确性?

时间:2019-03-18 21:37:25

标签: machine-learning classification

在许多训练数据集中,班级分布是倾斜的,即一类非常频繁(例如95%),而另一类很少(例如5%)。在这样的应用程序中,将所有测试用例分配给多数类的朴素分类器实现了非常高的准确性。但是,朴素的分类器不能预测少数群体的任何情况,尽管它通常比多数群体更为重要。

那么,有什么方法可以通过修改训练数据集来提高少数族裔班级的准确性?还是我们也必须修改分类算法?

2 个答案:

答案 0 :(得分:1)

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

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/

答案 1 :(得分:0)

有很多方法。您可以对少数族裔类别进行升采样,对多数群体进行降采样,基于损失进行加权或采取其他措施。当您标记了与TF相关的帖子后,建议您查看Keras的重要性采样,the Tcler's Wiki on this可以随时使用模型中的包装器。