机器学习进阶 第一节 第十五课

举报
我是小白呀iamarookie 发表于 2021/09/10 22:38:12 2021/09/10
【摘要】 分类器性能评估 概述sklearn.metrics.classification_report 概述 在许多实际问题中, 衡量分类器任务的成功程度是通过固定的性能指标来获取. 一般常见使用...

概述

在许多实际问题中, 衡量分类器任务的成功程度是通过固定的性能指标来获取. 一般常见使用的是准确率, 即预测结果正确的百分比. 然而有时候, 我们关注的负样本是否被正确诊断出来. 例如, 关于肿瘤的判定, 需要更加关心多少恶性肿瘤被正确的诊断出来. 也就是说, 在二类分类任务下, 预测结果 (Predicted Condition) 与正确标记 (True Condition) 之间存在不同的组合, 构造混淆矩阵.

在二类问题中, 如果将一个正例, 那么就可以认为产生了一个真正例 (True Positive, TP). 如果对一个反例正确的判为反例, 则认为产生了一个真反例 (True Negative, TN). 相应地, 另外两种情况则分别称为
伪反例 (False Negative, FN, 也称) 和伪正例 (False Positive, TP). 四种情况如下图:
在这里插入图片描述
在分类中, 当某个类别的重要性高于其他类别时, 我们就可以利用上述定义出多个逼错误率更好的新指标. 第一个指标就是正确率 (Precision). 它等于 TP/(TP+FP), 给出的是预测为正例的样本中占真实结果总数的比例. 第二个指标是召回率 (Recall). 它等于 TP/(TP+FN), 给出的是预测为正例的真实正例占所有真实正例的比例.

那么除了正确率和精确率这两个指标之外, 为了综合考虑召回率和精确率, 我们计算这个两个指标的调和平均数, 得到 F1 指标 (F1 measure):
在这里插入图片描述
之所以使用调和平均数, 是因为它除了具备平均功能外, 还会对那些召回率和精确率更加接近的模型给予更高的分数. 而这也是我们所希望的, 因为那些召回率和精确率差距过大的学习模型, 往往没有足够的使用价值.

sklearn.metrics.classification_report

sklearn 中 metristics 中提供了计算四个指标的模块, 也就是 classification_report.

classification_report(y_true, y_pred, labels=None, target_names=None, digits=2)
  """
  计算分类指标
  :param y_true:真实目标值

  :param y_pred:分类器返回的估计值

  :param target_names:可选的,计算与目标类别匹配的结果

  :param digits:格式化输出浮点值的位数

  :return :字符串,三个指标值

  """

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

我们通过一个例子来分析一下指标的结果:

from sklearn.metrics import classification_report
y_true = [0, 1, 2, 2, 2]
y_pred = [0, 0, 2, 2, 1]
target_names = ['class 0', 'class 1', 'class 2']
print(classification_report(y_true, y_pred, target_names=target_names))


             precision    recall  f1-score   support

    class 0       0.50      1.00      0.67         1
    class 1       0.00      0.00      0.00         1
    class 2       1.00      0.67      0.80         3

avg / total       0.70      0.60      0.61         5

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

文章来源: iamarookie.blog.csdn.net,作者:我是小白呀,版权归原作者所有,如需转载,请联系作者。

原文链接:iamarookie.blog.csdn.net/article/details/111087312

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。