【问题标题】:imbalance class f1 score meaning不平衡类 f1 分数含义
【发布时间】:2021-04-09 21:30:12
【问题描述】:
          precision    recall  f1-score   support
Class 0       1.00      0.98      0.99    125000
Class 1       0.33      0.84      0.47      1500

大家好,

在这个模型中,f1 分数对于预测第 1 类(少数类)并不是很好。

我的想法是,如果模型对 0 类预测得这么好,为什么不把问题反过来预测 0 类。既然只有 2 个类,如果不是 0 类,那就是 1 类。

换句话说,如果模型可以将数据识别为 0 类,那么它肯定不是 1 类(尤其是当 0 类的精度为 1 时)。这意味着该模型仍然表现良好。

这样可以吗?为什么不呢?

非常感谢。

【问题讨论】:

    标签: machine-learning classification precision-recall imbalanced-data


    【解决方案1】:

    您说的是模型真正学习了 0 类的直觉。在这种情况下(数据不平衡),这些分数(高召回率/高精度)可能有点决定性,意义不大。

    让我举个例子。如果您指定一个盲人对红苹果和橙苹果进行分类(例如,您有 99 个红苹果和 1 个绿苹果作为您的数据)。现在,当你给他一个红苹果(他不知道是什么颜色)时,他只是随机说“红色”,你会很高兴并给他奖励(从机器学习的角度来看,产生更低的损失)。所以现在他知道说“红色”会给他奖励,所以现在他利用这种行为并一直说“红色”(尽管他会错过一个“绿色”苹果,但这并不能说明所有的奖励他有)。现在,如果您不知道这个人是盲人,您可以说“我可以将他用作苹果分类器,因为他非常了解“红”苹果,当它不是“红苹果”。但是你知道这是一个盲人,他真的不知道“红”苹果是不是“红”苹果。

    我们可以这样想我们的模型,当我们给它一个任务时,它的工作就是减少损失,所以如果它得到一个漏洞,它就会利用任何漏洞。所以当它得到不平衡的数据时,它知道总是给出 0 类(多数类)的预测会减少损失,所以它就是这样做的。如果你从几何的角度考虑,你已经得到了 2 种颜色的所有这些点(不同的类),现在你有一条线来分隔它们(决策边界),如果你把线画在很远的地方并说向右的点(数据集的所有点所在的位置)是 0 类(多数类),左侧的所有点都是 1 类(少数类)。那么这个模型也会为 0 类产生一个高精度分数,这告诉我们当它预测 0 类时我们可以真正信任该模型(这就是精度指标的含义),但我们真的可以吗?我们知道它实际上并没有学到任何东西。

    所以这些都是问题,在数据不平衡的情况下,我们的成本分配也会出现偏差,这会阻碍模型的严格学习。

    【讨论】:

    • 哇!非常感谢您的详细解释和示例!我真的很感激!
    • 很高兴它帮助了你。
    • 嗨,你是怎么做到的?
    猜你喜欢
    • 2020-06-19
    • 2019-04-23
    • 2020-10-09
    • 1970-01-01
    • 1970-01-01
    • 2016-06-23
    • 2015-01-28
    • 2021-07-02
    • 2020-06-27
    相关资源
    最近更新 更多