python - 精确分数警告导致分数 = 0 sklearn
问题描述
我在 sklearn 中使用precision_score 来评估异常值检测算法的结果。我只训练了一节课,并预测了看不见的数据。所以一个类的标签一直都是0。
我发现了以下内容:
有两列,真相和预测。(我使用标签编码器来美化数字,在Local Outlier Factor中,它为内点输出1,为异常值输出-1,我使用标签编码器将它们编码为0和1,事实相同)
但是,算法返回我的准确率是 1,但精度是 0。可以清楚地看到预测与事实完全匹配。我希望这两个参数都得到 1 分。它带有以下警告:
我应该做什么或我应该阅读的任何链接以缓解此问题。
解决方案
该文档解释说,只有两个类,它将其视为二进制问题。精度是关于真正的肯定(当答案为 1 时猜测 1)。你没有任何——只有真正的否定(当答案为 0 时猜测为 0)。
如果您对该结果真的不满意,可以使用 zero_division 参数:
precision_score(truth, predicted, zero_division=1)
这样,您将获得所需的 1。
推荐阅读
- javascript - 无法使用 npm install 安装 pyret-lang
- xml - 在 XML 中搜索值并将元素复制到另一个文件中
- gremlin - Gremlin:针对多个连接的顶点进行分组的问题
- android - Android Intent 导致屏幕出现蓝色层
- javascript - 如何访问 iddoFeed 节点并获取所有信息?
- python - 如何删除使用 beautifulsoup 创建的列表中的 html 标签?
- go - 关于Go语言初始化(执行)顺序的问题
- jquery - 从具有相同类的跨度中获取文本
- django - 如何使用 Django-tinymce4-lite 在管理员的文本字段中添加动态链接 {% url 'url_name' %}?
- ruby-on-rails - 如何在 Ruby on Rails 中通过黄瓜测试确认弹出窗口