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类不是很好,1类是少数类。
我的想法是,如果模型能很好地预测0级,为什么我们不直接反转这个问题,预测0级呢?因为只有2个类,如果它不是0类,那么它就是1类。
换句话说,如果模型可以将数据识别为类0,那么它肯定不是类1(特别是当类0的精度为1时)。这意味着模型仍然做得很好。
它是这样工作的吗?为什么不行?
在此之前,非常感谢您。
发布于 2021-01-04 11:50:42
您是在凭直觉进行对话,即模型确实学习了0类。在这种情况下(数据不平衡),这些分数(高召回率/高精确度)可能有点决定性,意义较小。
让我给你举个例子。如果你指定一个盲人对红苹果和橙苹果进行分类(例如,你有99个红苹果和一个绿苹果作为你的数据)。现在,当你给他一个红苹果(他不知道苹果是什么颜色)时,他只是随机地说“红”,你会很高兴,并给他一个奖励(在ML的视角下,产生较低的损失)。因此,现在他知道说"Red“会给他一个奖励,所以现在他利用这种行为,一直说"Red”(尽管他错过了一个"Green“苹果,但这并不能解释他获得的所有奖励)。现在,如果你不知道这个人是盲人,你可以说:“我可以用他作为苹果分类器,因为他对”红色“苹果非常了解,当它不是”红色“苹果时,我可以将他的分类颠倒过来。”但是你知道这是一个盲人,他不知道一个“红”苹果是不是一个“红”苹果。
我们可以这样考虑我们的模型,当我们给它一个任务时,它的工作是减少损失,所以为了做到这一点,它会利用任何漏洞。因此,当它得到不平衡的数据时,它知道总是给出0类(多数类)的预测可以减少损失,这就是它所做的。如果你从几何的角度考虑,你已经得到了2种颜色(不同的类)的所有这些点,现在你有一条线来分隔它们(决策边界),如果你在某个地方画了一条线,并说右边的点(数据集的所有点)是类0(多数类),所有左边的点都是类1(少数类)。那么这个模型也会为0级产生一个高精度的分数,这告诉我们当它预测0级时,我们真的可以信任它(这就是精度度量的意思),但是我们真的可以吗?正如我们所知,它实际上并没有学到任何东西。
因此,这些就是问题所在,在数据不平衡的情况下,我们的成本分布也会出现偏差,这阻碍了模型的严格学习。
https://stackoverflow.com/questions/65556746
复制相似问题