分类器性能评估

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

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

sklearn.metrics.classification_report

sklearn中metrics中提供了计算四个指标的模块,也就是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 :字符串,三个指标值"""

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

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   supportclass 0       0.50      1.00      0.67         1class 1       0.00      0.00      0.00         1class 2       1.00      0.67      0.80         3avg / total       0.70      0.60      0.61         5

sklearn分类器性能评估相关推荐

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

    Machine Learning | 机器学习简介 Machine Learning | (1) Scikit-learn与特征工程 Machine Learning | (2) sklearn数据集 ...

  2. sklearn模型预测性能评估(二)

    1. 使用sklearn.metric包中的性能度量函数 1.1 分类器性能度量 精度-召回率-F度量 损失函数 接收机操作曲线 1.2 只限于二元单标签分类问题的评估指标 metrics.preci ...

  3. scikit-learn中评估分类器性能的度量,像混淆矩阵、ROC、AUC等

    评估分类器性能的度量,像混淆矩阵.ROC.AUC等 内容概要 模型评估的目的及一般评估流程 分类准确率的用处及其限制 混淆矩阵(confusion matrix)是如何表示一个分类器的性能 混淆矩阵中 ...

  4. python 聚类_使用python+sklearn实现聚类性能评估中随机分配对聚类度量值的影响

    注意:单击此处https://urlify.cn/3iAzUr下载完整的示例代码,或通过Binder在浏览器中运行此示例 下图说明了聚类数量和样本数量对各种聚类性能评估度量指标的影响.未调整的度量指标 ...

  5. R语言构建logistic回归模型并评估模型:构建基于混淆矩阵计算分类评估指标的自定义函数、阳性样本比例(垃圾邮件比例)变化对应的分类器性能的变化、基于数据阳性样本比例选择合适的分类评估指标

    R语言构建logistic回归模型并评估模型:构建基于混淆矩阵计算分类评估指标的自定义函数.阳性样本比例(垃圾邮件比例)变化对应的分类器性能的变化.基于数据阳性样本比例选择合适的分类评估指标 目录

  6. 【Python-ML】SKlearn库多元线性回归性能评估

    # -*- coding: utf-8 -*- ''' Created on 2018年1月24日 @author: Jason.F @summary: 有监督回归学习-多元线性回归的性能评估 ''' ...

  7. 13_线性回归分析、线性模型、损失函数、最小二乘法之梯度下降、回归性能评估、sklearn回归评估API、线性回归正规方程,梯度下降API、梯度下降 和 正规方程对比

    1.线性回归 1.1 线性模型 试图学得一个通过属性的线性组合来进行预测的函数: 1.2 定义 定义:线性回归通过一个或者多个自变量与因变量之间进行建模的回归分析.其中特点为一个或多个称为回归系数的模 ...

  8. Machine Learning | (11) 回归性能评估与欠拟合、过拟合

    Machine Learning | 机器学习简介 Machine Learning | (1) Scikit-learn与特征工程 Machine Learning | (2) sklearn数据集 ...

  9. 机器学习知识点(三十六)分类器性能度量指标f1-score

    在用python机器学习库scikit-learn训练模型时,常用f1-score来度量模型性能,下面回顾和学习下这个指标. 内容概要¶ 模型评估的目的及一般评估流程 分类准确率的用处及其限制 混淆矩 ...

最新文章

  1. Oracle 10g(10.2.0.4)升级到10.2.0.5.19
  2. DataGrid中选择列文本根据绑定数据不同显示为不同颜色的处理办法
  3. LeetCode 1945. 字符串转化后的各位数字之和
  4. Gartner 最新预测:全球云收入将超非云收入,云原生、低代码、SASE 继续普及
  5. MySQL之Procedure(存储过程)和Function(函数)
  6. 如何使用android studio,怎么学习使用Android Studio?
  7. java自动生成函数注释_IDEA类和方法注释自动生成(2019-08-31 21:47写)
  8. 用java编写数组最小公倍数_[求助]Java编的求最小公倍数的程序,老是不对。。。调试了无数次了,请达人指教。。...
  9. 一道携程SQL笔试题
  10. Hbase 操作命令
  11. MacBook常用快捷键有哪些?
  12. 问诊把脉“实景三维业务发展瓶颈在哪里”和“御医良方”
  13. 软件设计师----计算机网络
  14. java lowpoly低多边形风格图片生成
  15. Java学习:流程控制
  16. Android事件分发机制浅析
  17. java基础知识大端模式及其小端模式处理
  18. 区块链:对链式结构型 PoS 系统的 “虚假权益” 攻击
  19. Spring Bean的生命周期(二)
  20. 百度图片爬虫,爬取高清图片

热门文章

  1. python 分布图_python数据分布型图表柱形分布图系列带误差线的柱形图
  2. [TypeScript] vs code TSLint常见错误解决方案
  3. 牛客提高R5 A.同余方程
  4. 向银行贷款20万, 分期三年买50万的车,个人借款40万, 贷款10年买200万的房子,再贷款120万分创业...
  5. Theano 更多示例
  6. MYSQL基础十一--存储引擎
  7. Git 常用命令整理(持续更新)
  8. VirtualBox的Linux虚拟机访问Windows7的文件
  9. 工作项跟踪管理系统需求
  10. 现在的年轻人,正在努力的改变着一些东西