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。

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

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

  1. Hands On Machine Learning with Scikit Learn and TensorFlow(第三章)

    MNIST 从sklearn自带函数中导入NMIST 第一次导入可能会出错,从这里下载https://github.com/amplab/datascience-sp14/blob/master/la ...

  2. Hands On Machine Learning with Scikit Learn and TensorFlow(第十章)

    Oscar帮助你寻找好的超参数组合. 每个隐藏层神经元的数量应该是逐渐减少的,因为第一层学到的低阶特征,可以在第二层组合成高阶特征 .

  3. Machine Learning A-Z学习笔记12-分类模型性能评级及选择

    Machine Learning A-Z学习笔记12-分类模型性能评级及选择 1.简单原理 一般认为假阴性比假阳性更严重,如核酸检测 用混淆矩阵表示如下图 准确率驳论(Accuracy Paradox ...

  4. 的使用两个数据集拼接_使用Scikit Learn的分类器探索Iris数据集

    暂时,想象一下你不是一个花卉专家(如果你是专家,那对你很好!).你能区分三种不同的鸢尾属植物吗?刚毛鸢尾属,花色鸢尾属和维吉尼亚鸢尾属(setosa, versicolor, virginica)? ...

  5. 声源分离算法性能评估指标SIR、SDR、SAR

    原理介绍 声源分离算法用于从混合的观测声信号中分离出一个或者多个期望源信号,如语音降噪.去混响.音乐信号分离等.评价一个声源分离算法性能的好坏,就是要衡量算法所提取的源信号和真实源信号之间的差异.目前 ...

  6. 【Machine Learning】TensorFlow实现K近邻算法预测房屋价格

    1前言 机器学习KNN算法(K近邻算法)的总体理论很简单不在这里赘述了. 这篇文章主要问题在于如果利用tensorflow深度学习框架来实现KNN完成预测问题,而不是分类问题,这篇文章中涉及很多维度和 ...

  7. 机器学习回归算法—性能评估欠拟合与过拟合

    机器学习中的泛化,泛化即是,模型学习到的概念在它处于学习的过程中时模型没有遇见过的样本时候的表现.在机器学习领域中,当我们讨论一个机器学习模型学习和泛化的好坏时,我们通常使用术语:过拟合和欠拟合.我们 ...

  8. zram lz4 和 lzo 算法性能评估比较

    本次评估是基于高通660 平台,Arm 64 位处理器,其中有 8 个核,4个小核 1.8G 频率,4个大核 2.2G 频率 ,主要对比 zram 的两个主流的压缩算法的性能差别.由于前段时间在看工作 ...

  9. Machine Learning | (8) Scikit-learn的分类器算法-随机森林(Random Forest)

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

最新文章

  1. @scheduled cron动态修改_spring boot实现动态增删启停定时任务
  2. Nginx-rtmp 直播媒体实时流实现
  3. 一篇文章带你搞懂JS对象的自我销毁
  4. 如果在chrome的新标签中继续打开开发工具
  5. OpenCASCADE绘制测试线束:使用自定义命令扩展测试工具
  6. #ifndef的作用
  7. python另存为excel_在Python中将Excel另存为HTML
  8. php mysql数据库同步_实现MySQL数据库同步实例演示_MySQL
  9. mysql数据库原理与应用武洪萍第三张答案_mysql数据库武洪萍版第四章习题与答案...
  10. DIY RazorEngine 的程序集生成方式
  11. 日志分析里面的max是什么_mysql慢日志文件分析处理
  12. E - Game 树上dfs贪心
  13. 企业微信发送信息异常的临时处理方案
  14. 用户、巨头、计算平台,最终都是“社交”的傀儡?
  15. 视频编码的守望者--Jason Garrett-Glaser
  16. 咪咕音乐的下载音乐存储路径(MAC)
  17. B860AV3.1-M2_刷机固件
  18. 使用 jodd:form tag
  19. 韩国KOBA蓄电池 全系列电池供应
  20. 外企面试最常见的八大英文问题

热门文章

  1. 这个算法网站,强推。
  2. 一文带你彻底了解Java异步
  3. 使用自动化插件release来管理maven项目的版本发布
  4. 【高并发】为何高并发系统中都要使用消息队列?这次彻底懂了!
  5. 京东如何基于Vitess管理大型MySQL实例集群
  6. 锅都不敢背,凭什么让大家跟着你干?
  7. 规模化敏捷中的“三要”和“三不要”
  8. c语言潮流计算验证30节点,C语言潮流计算研究报告.doc
  9. 怎么用Leangoo管理Bug
  10. ubuntu截图工具