微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

不平衡类 f1 分数含义

如何解决不平衡类 f1 分数含义

          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 时)。这意味着该模型仍然表现良好。

它是这样工作的吗?为什么不呢?

非常感谢。

解决方法

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

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

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

这些就是问题所在,由于数据不平衡,我们的成本分布也会出现偏差,从而阻碍了模型的严格学习。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。