不平衡 class f1 分数含义

imbalance class f1 score meaning

          precision    recall  f1-score   support
Class 0       1.00      0.98      0.99    125000
Class 1       0.33      0.84      0.47      1500

大家好,

在这个模型中,f1 分数对于预测 class 1,少数 class。

不是很好

我的想法是,如果模型预测 class 0 这么好,为什么我们不翻转问题并预测 class 0。因为只有 2 class,如果不是class0,就是class1.

换句话说,如果模型能识别出一个数据是class0,那肯定不是class1(尤其是class0精度为1的时候) .这意味着该模型仍然表现良好。

是这样的吗?为什么不呢?

非常感谢。

你是在用直觉说话,模型真的学到了 class 0。在这种情况下(数据不平衡)这些分数(高 recall/high 精度)可能有点决定性,意义不大.

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

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

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