精确分数警告导致分数 =0 sklearn

问题描述

我在 sklearn 中使用 precision_score 来评估异常值检测算法的结果。 我只训练了一个班级,并预测了看不见的数据。所以一类的标签一直都是0。

我发现了以下内容

enter image description here

有两列,真实和预测。 (我用标签编码器对数字进行美化,在Local Outlier Factor中,它输出1为内点,-1为离群点,我使用标签编码器将它们编码为0和1,真相相同)

enter image description here

但是算法返回我的accuracy是1,precision为0,可以很明显的看到预测的和真实的完全吻合。我希望这两个参数都得到 1s 的分数。它带有以下警告:

enter image description here

我应该怎么做或我应该阅读任何链接来缓解这个问题。

解决方法

文档解释说,只有两个类,它把它当作一个二元问题。精度是关于真阳性(当答案为 1 时猜测为 1)。你没有任何 - 只有真正的否定(当答案为 0 时猜测为 0)。

如果你真的对这个结果不满意,你可以使用 zero_division 参数:

precision_score(truth,predicted,zero_division=1)

那样,你就会得到你想要的 1。