Machine Learning | (6) Scikit-learn的分类器算法-性能评估

举报
DrugAI 发表于 2021/07/15 22:54:24 2021/07/15
【摘要】 Machine Learning | 机器学习简介 Machine Learning | (1) Scikit-learn与特征工程 Machine Learning | (2) sklearn数据集与机器学习组成 Machine Learning | (3) Scikit-learn的分类器算法-k-近邻 Machine Learning | (4) Scikit-...

Machine Learning | 机器学习简介

Machine Learning | (1) Scikit-learn与特征工程

Machine Learning | (2) sklearn数据集与机器学习组成

Machine Learning | (3) Scikit-learn的分类器算法-k-近邻

Machine Learning | (4) Scikit-learn的分类器算法-逻辑回归

Machine Learning | (5) Scikit-learn的分类器算法-朴素贝叶斯

Machine Learning | (6) Scikit-learn的分类器算法-性能评估


分类器性能评估

在许多实际问题中,衡量分类器任务的成功程度是通过固定的性能指标来获取。一般最常见使用的是准确率,即预测结果正确的百分比。然而有时候,我们关注的是负样本是否被正确诊断出来。例如,关于肿瘤的的判定,需要更加关心多少恶性肿瘤被正确的诊断出来。也就是说,在二类分类任务下,预测结果(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):

{F1}={\frac{2}{\frac{1}{Precision}{+}\frac{1}{Recall}}}F1=​​Precision​​1​​+​Recall​​1​​​​2​​

之所以使用调和平均数,是因为它除了具备平均功能外,还会对那些召回率和精确率更加接近的模型给予更高的分数;而这也是我们所希望的,因为那些召回率和精确率差距过大的学习模型,往往没有足够的使用价值。

sklearn.metrics.classification_report

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


  
  1. classification_report(y_true, y_pred, labels=None, target_names=None, digits=2)
  2. """
  3. 计算分类指标
  4. :param y_true:真实目标值
  5. :param y_pred:分类器返回的估计值
  6. :param target_names:可选的,计算与目标类别匹配的结果
  7. :param digits:格式化输出浮点值的位数
  8. :return :字符串,三个指标值
  9. """

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


  
  1. from sklearn.metrics import classification_report
  2. y_true = [0, 1, 2, 2, 2]
  3. y_pred = [0, 0, 2, 2, 1]
  4. target_names = ['class 0', 'class 1', 'class 2']
  5. print(classification_report(y_true, y_pred, target_names=target_names))
  6. precision recall f1-score support
  7. class 0 0.50 1.00 0.67 1
  8. class 1 0.00 0.00 0.00 1
  9. class 2 1.00 0.67 0.80 3
  10. avg / total 0.70 0.60 0.61 5

 

文章来源: drugai.blog.csdn.net,作者:DrugAI,版权归原作者所有,如需转载,请联系作者。

原文链接:drugai.blog.csdn.net/article/details/104301121

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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