精度分数警告导致分数 =0 sklearn
precision score warnings results in score =0 sklearn
我在 sklearn 中使用 precision_score 来评估异常值检测算法的结果。
我只训练了一个 class 并预测了看不见的数据。所以 class 的标签一直都是 0。
我发现了以下内容:
有两列,真相和预测。
(我用label encoder美化了数字,在Local Outlier Factor里,inlier输出1,outlier输出-1,我用label encoder编码成0和1,道理一样)
但是算法returns我的accuracy是1,precision是0。可以很明显的看出预测的和真实的完全吻合。我希望两个参数的分数都是 1。它带有以下警告:
我应该怎么做或我应该阅读任何链接来缓解这个问题。
文档解释说只有两个 类,它将其视为二元问题。精度与真阳性有关(当答案为 1 时猜测 1)。你什么都没有——只有真负数(当答案为 0 时猜 0)。
如果你真的对那个结果不满意,你可以使用 zero_division 参数:
precision_score(truth, predicted, zero_division=1)
这样,你会得到你想要的 1。
我在 sklearn 中使用 precision_score 来评估异常值检测算法的结果。 我只训练了一个 class 并预测了看不见的数据。所以 class 的标签一直都是 0。
我发现了以下内容:
有两列,真相和预测。 (我用label encoder美化了数字,在Local Outlier Factor里,inlier输出1,outlier输出-1,我用label encoder编码成0和1,道理一样)
但是算法returns我的accuracy是1,precision是0。可以很明显的看出预测的和真实的完全吻合。我希望两个参数的分数都是 1。它带有以下警告:
我应该怎么做或我应该阅读任何链接来缓解这个问题。
文档解释说只有两个 类,它将其视为二元问题。精度与真阳性有关(当答案为 1 时猜测 1)。你什么都没有——只有真负数(当答案为 0 时猜 0)。
如果你真的对那个结果不满意,你可以使用 zero_division 参数:
precision_score(truth, predicted, zero_division=1)
这样,你会得到你想要的 1。