【问题标题】:Balance problem for classification on Cleveland Dataset克利夫兰数据集分类的平衡问题
【发布时间】:2019-12-01 22:57:06
【问题描述】:

我质疑著名的克利夫兰心脏病数据集标记其对象的方式here

这个数据集非常不平衡(许多对象属于“无病”类)。我注意到许多使用此数据集的论文用于组合所有其他类别并将其简化为二元分类(疾病与非疾病)

是否有其他方法可以处理这种不平衡的类问题,而不是减少类的数量以从分类器中获得好的结果?

【问题讨论】:

    标签: machine-learning scikit-learn classification multilabel-classification multiclass-classification


    【解决方案1】:

    一般来说,在处理非平衡数据集时,应该使用非监督学习方法。

    您可以使用多元正态分布。 在你的情况下,如果你在一个类中有很多元素,而在另一个类中元素很少,那么监督学习方法是不合适的。因此,作为一种非监督机器学习方法的多元正态分布可能是解决方案。该算法从数据中学习并找到定义数据的值(即数据的最重要部分,这里是“没有疾病”的情况)。一旦这些值被输出,人们就可以搜索不适合它们的元素,这些元素就是所谓的“异常元素”或“异常”。在您的情况下,这些是“疾病”个体。

    第二种解决方案是平衡您的数据集,并使用初始监督学习算法。您可以使用以下技术做到这一点。这些陈述通常很好,但它们在很大程度上取决于您拥有的数据(请注意,我无权访问您的输入数据!),因此您应该对其进行测试,看看哪一个最适合您的目的。

    1. 用少量元素为类收集更多元素。

    2. 复制元素较少的类中的元素,以便为两个类获得相同数量的数据,对于具有更多元素的类。这个解决方案有一个问题,在两个类之间输入数据量差异很大的情况下,并且使用神经网络,因为具有重复元素的类不会有很大的变化,而神经网络提供了很好的只有在使用大量非常多变的数据进行训练时才能得出结果。

    3. 在具有更多元素的类中使用更少的数据,以使两个类中的元素数量与具有少量元素的类中的元素数量相同。在使用神经网络时也可能存在问题,因为用较少的数据训练它可能不会产生好的结果。还要小心,以便输入元素多于特征,否则将无法正常工作。

    【讨论】:

    • 哦,我的实验完全基于监督学习。实际上我正在使用 MLP 对数据进行分类
    • 我明白了,但这与我上面写的并不矛盾。您可以使用与元素关联的标签来测量精度和召回率。如果你训练一个监督模型,其中一个类的数据比另一类多得多,ML 的结果和预测将是错误的(对于具有更多元素的类,你可能会得到很好的结果)
    • 不确定我是否完全同意这种说法,尽管它绝对是一种有效的方法。这是 ML 中一个非常经典的问题,对此进行了广泛的讨论。你可能想看看这个:machinelearningmastery.com/…
    • MaximeKan 的回答:你当然是对的。但我在这里建议了一种方法,等等。人们应该尝试几种技术,并选择一种能够为他/她的数据集提供最佳结果的技术。 @joann2555 :如果正例的数量非常少,您毕竟应该选择非监督算法。否则,请尝试复制您的正面示例以获得平衡的数据集。希望这会有所帮助。
    • 我更新了答案。我希望它可能有用!如果您有时间,请对您的结果提供反馈,我想知道您选择了哪种解决方案。
    猜你喜欢
    • 2019-12-01
    • 2017-04-17
    • 2018-10-10
    • 1970-01-01
    • 2015-01-28
    • 2019-11-05
    • 2019-08-30
    • 1970-01-01
    • 2019-07-13
    相关资源
    最近更新 更多