【问题标题】: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 类时我们可以真正信任该模型(这就是精度指标的含义),但我们真的可以吗?我们知道它实际上并没有学到任何东西。
所以这些都是问题,在数据不平衡的情况下,我们的成本分配也会出现偏差,这会阻碍模型的严格学习。