本文整理了关于机器学习分类问题的评价指标——Confusion Matrix.ROC.AUC的概念以及理解. 混淆矩阵 在机器学习领域中,混淆矩阵(confusion matrix)是一种评价分类模型好坏的形象化展示工具.其中,矩阵的每一列表示的是模型预测的样本情况:矩阵的每一行表示的样本的真实情况. 举个经典的二分类例子: 混淆表格:                 混淆矩阵是除了ROC曲线和AUC之外的另一个判断分类好坏程度的方法,通过混淆矩阵我们可以很清楚的看出每一类样本的识别正误情况.…
  目标: 快速理解什么是混淆矩阵, 混淆矩阵是用来干嘛的. 首先理解什么是confusion matrix 看定义,在机器学习领域,混淆矩阵(confusion matrix),又称为可能性表格或是错误矩阵.它是一种特定的矩阵用来呈现算法性能的效果,通常是监督学习(非监督学习,通常用匹配矩阵:matching matrix). 大白话来讲,就是对机器学习算法的运行结果进行评价,效果如何,精确度怎么样而已. 举个例子,在什么场景下需要这个confusion matrix 假设有一个用来对猫(ca…
评价指标是针对同样的数据,输入不同的算法,或者输入相同的算法但参数不同而给出这个算法或者参数好坏的定量指标. 以下为了方便讲解,都以二分类问题为前提进行介绍,其实多分类问题下这些概念都可以得到推广. 准确率 准确率是最好理解的评价指标,它是一个比值: \[ 准确率 = \cfrac{算法分类正确的数据个数}{输入算法的数据的个数} \] 但是使用准确率评价算法有一个问题,就是在数据的类别不均衡,特别是有极偏的数据存在的情况下,准确率这个评价指标是不能客观评价算法的优劣的.例如下面这个例子: 我们…
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是机器学习专题的第18篇文章,我们来看看机器学习领域当中,非常重要的其他几个指标. 混淆矩阵 在上一篇文章当中,我们在介绍召回率.准确率这些概念之前,先讲了TP.FP.FN.和FP这几个值.我们再来简单地回顾一下,我们不能死记硬背这几个指标,否则很容易搞错,并且还容易搞混.我们需要从英文入手来理解,其中的T表示真,可以理解成预测正确,F表示假,也就是预测错误.而P和N表示positive和negative,也就是阴和阳,或者是0和1…
一.前述 怎么样对训练出来的模型进行评估是有一定指标的,本文就相关指标做一个总结. 二.具体 1.混淆矩阵 混淆矩阵如图:  第一个参数true,false是指预测的正确性.  第二个参数true,postitives是指预测的结果.  相关公式: 检测正列的效果: 检测负列的效果: 公式解释: fp_rate: tp_rate: recall:(召回率) 值越大越好 presssion:(准确率) TP:本来是正例,通过模型预测出来是正列 TP+FP:通过模型预测出来的所有正列数(其中包括本来…
准确率.精确率(查准率).召回率(查全率).F1值.ROC曲线的AUC值,都可以作为评价一个机器学习模型好坏的指标(evaluation metrics),而这些评价指标直接或间接都与混淆矩阵有关,前四者可以从混淆矩阵中直接计算得到,AUC值则要通过ROC曲线进行计算,而ROC曲线的横纵坐标又和混淆矩阵联系密切,所以在了解这些评价指标之前,先知道什么是混淆矩阵很有必要,也方便记忆. 1.混淆矩阵 对于一个二分类问题,我们可以得到如表 1所示的的混淆矩阵(confusion matrix): 表…
评估分类器性能的度量,像混淆矩阵.ROC.AUC等 内容概要¶ 模型评估的目的及一般评估流程 分类准确率的用处及其限制 混淆矩阵(confusion matrix)是如何表示一个分类器的性能 混淆矩阵中的度量是如何计算的 通过改变分类阈值来调整分类器性能 ROC曲线的用处 曲线下面积(Area Under the Curve, AUC)与分类准确率的不同   1. 回顾¶ 模型评估可以用于在不同的模型类型.调节参数.特征组合中选择适合的模型,所以我们需要一个模型评估的流程来估计训练得到的模型对于…
转自:https://blog.csdn.net/Orange_Spotty_Cat/article/details/80520839 略有改动,仅供个人学习使用 简介 混淆矩阵是ROC曲线绘制的基础,同时它也是衡量分类型模型准确度中最基本,最直观,计算最简单的方法. 一句话解释版本:混淆矩阵就是分别统计分类模型归错类,归对类的观测值个数,然后把结果放在一个表里展示出来.这个表就是混淆矩阵. 数据分析与挖掘体系位置 混淆矩阵是评判模型结果的指标,属于模型评估的一部分.此外,混淆矩阵多用于判断分类…
分类问题 分类问题是人工智能领域中最常见的一类问题之一,掌握合适的评价指标,对模型进行恰当的评价,是至关重要的. 同样地,分割问题是像素级别的分类,除了mAcc.mIoU之外,也可以采用分类问题的一些指标来评价. 本文对分类问题的常见评价指标进行介绍,并附上利用sklearn库的python实现. 将从以下三个方面分别介绍: 常用评价指标 混淆矩阵绘制及评价指标计算 ROC曲线绘制及AUC计算 1. 常用评价指标 混淆矩阵(confusion matrix) 一般用来描述一个分类器分类的准确程度…
原理 在机器学习中, 混淆矩阵是一个误差矩阵, 常用来可视化地评估监督学习算法的性能. 混淆矩阵大小为 (n_classes, n_classes) 的方阵, 其中 n_classes 表示类的数量. 这个矩阵的每一行表示真实类中的实例, 而每一列表示预测类中的实例 (Tensorflow 和 scikit-learn 采用的实现方式). 也可以是, 每一行表示预测类中的实例, 而每一列表示真实类中的实例 (Confusion matrix From Wikipedia 中的定义). 通过混淆矩…
混淆矩阵.准确率.召回率.ROC曲线.AUC 假设有一个用来对猫(cats).狗(dogs).兔子(rabbits)进行分类的系统,混淆矩阵就是为了进一步分析性能而对该算法测试结果做出的总结.假设总共有 27 只动物:8只猫, 6条狗,13只兔子.结果的混淆矩阵如上图所示,我们可以发现,只有主对角线上的预测结果是完全正确的.每一列的和为预测为该类的数量,每一行的和为实际该类的数量.在这个混淆矩阵中,实际有8只猫,但是系统将其中3只预测成了狗:对于6条狗,其中有1条被预测成了兔子,2条被预测成了猫…
混淆矩阵(Confusion Matrix),是一种在深度学习中常用的辅助工具,可以让你直观地了解你的模型在哪一类样本里面表现得不是很好. 如上图,我们就可以看到,有一个样本原本是0的,却被预测成了1,还有一个,原本是2的,却被预测成了0. 简单介绍作用后,下面上代码: import seaborn as sns from sklearn.metrics import confusion_matrix import matplotlib.pyplot as plt 导入需要的包,如果有一些包没有…
1. 混淆矩阵 确定截断点后,评价学习器性能 假设训练之初以及预测后,一个样本是正例还是反例是已经确定的,这个时候,样本应该有两个类别值,一个是真实的0/1,一个是预测的0/1 TP(实际为正预测为正),FP(实际为负但预测为正),TN(实际为负预测为负),FN(实际为正但预测为负) 通过混淆矩阵我们可以给出各指标的值:查全率(召回率,recall):样本中的正例有多少被预测准确了,衡量的是查全率,预测对的正例数占真正的正例数的比率: 查全率=检索出的相关信息量 / 系统中的相关信息总量 = T…
案例背景 银行评判用户的信用考量规避信用卡诈骗 ▒ 数据 数据共有 31 个特征, 为了安全起见数据已经向了模糊化处理无法读出真实信息目标 其中数据中的 class 特征标识为是否正常用户 (0 代表正常, 1 代表异常) ▒ 目标 本质依旧是一个分类问题, 0/1 的问题判断是否为信用卡诈骗用户 而在数据中 class 已经进行标识, 而且这次的样本数据的两项结果是极度的不均衡 既正常用户的样本数量是远远大于异常数据的. 不均衡的数据处理方式可以进行 下采样, 或者上采样 ▨ 下采样 -  对…
1. itertools.product  进行数据的多种组合 intertools.product(range(0, 1), range(0, 1))  组合的情况[0, 0], [0, 1], [1, 0], [1, 1] 2. confusion_matrix(test_y, pred_y)  # 构造混淆矩阵 混淆矩阵是TP(正的预测成正的), FP(正的预测成负的), TN(负的预测成负的), FN(负的预测成正的) 从混淆矩阵中,我们可以很清楚的看出这个信息,这是一个信用欺诈的案例,…
1.什么是性能度量? 我们都知道机器学习要建模,但是对于模型性能的好坏(即模型的泛化能力),我们并不知道是怎样的,很可能这个模型就是一个差的模型,泛化能力弱,对测试集不能很好的预测或分类.那么如何知道这个模型是好是坏呢?我们必须有个评判的标准.为了了解模型的泛化能力,我们需要用某个指标来衡量,这就是性能度量的意义.有了一个指标,我们就可以对比不同模型了,从而知道哪个模型相对好,那个模型相对差,并通过这个指标来进一步调参逐步优化我们的模型. 当然,对于分类和回归两类监督学习,分别有各自的评判标准.…
1. Precision和Recall Precision,准确率/查准率.Recall,召回率/查全率.这两个指标分别以两个角度衡量分类系统的准确率. 例如,有一个池塘,里面共有1000条鱼,含100条鲫鱼.机器学习分类系统将这1000条鱼全部分类为“不是鲫鱼”,那么准确率也有90%(显然这样的分类系统是失败的),然而查全率为0%,因为没有鲫鱼样本被分对.这个例子显示出一个成功的分类系统必须同时考虑Precision和Recall,尤其是面对一个不平衡分类问题. 下图为混淆矩阵,摘自wiki百…
参考资料:https://zhuanlan.zhihu.com/p/46714763 ROC/AUC作为机器学习的评估指标非常重要,也是面试中经常出现的问题(80%都会问到).其实,理解它并不是非常难,但是好多朋友都遇到了一个相同的问题,那就是:每次看书的时候都很明白,但回过头就忘了,经常容易将概念弄混.还有的朋友面试之前背下来了,但是一紧张大脑一片空白全忘了,导致回答的很差. 我在之前的面试过程中也遇到过类似的问题,我的面试经验是:一般笔试题遇到选择题基本都会考这个率,那个率,或者给一个场景让…
原文 === Summary ===(总结) Correctly Classified Instances(正确分类的实例)          45               90      % Incorrectly Classified Instances (错误分类的实例)        5               10      % Kappa statistic(Kappa统计量)                              0.792  Mean absolute…
仿照上篇博文对于混淆矩阵.ROC和AUC指标的探讨,本文简要讨论机器学习二分类问题中的混淆矩阵.PR以及AP评估指标:实际上,(ROC,AUC)与(PR,AP)指标对具有某种相似性. 按照循序渐进的原则,依次讨论混淆矩阵.PR和AP: 设定一个机器学习问题情境:给定一些肿瘤患者样本,构建一个分类模型来预测肿瘤是良性还是恶性,显然这是一个二分类问题. 本文中,将良性肿瘤视为正类标签(可能在具体实践中更为关注恶性肿瘤,不过这并不影响技术上的操作). 当分类模型选定以后,将其在测试数据集上进行评估,分…
在介绍ROC曲线之前,先说说混淆矩阵及两个公式,因为这是ROC曲线计算的基础. 1.混淆矩阵的例子(是否点击广告): 说明: TP:预测的结果跟实际结果一致,都点击了广告. FP:预测结果点击了,但是真实情况是未点击. FN:预测结果没有点击,但是真实情况是点击了. TN:预测结果没有点击,真实情况也是没有点击. 2.两个公式: 1)真正率: TPR=TP/(TP+FN) 2)假正率 FPR=FP/(FP+TN) 3.ROC曲线就是真正率随假正率的变化情况.下面用一段代码展示一下(sklearn…
声明:本文用到的代码均来自于PRTools(http://www.prtools.org)模式识别工具箱,并以matlab软件进行实验. 混淆矩阵是模式识别中的常用工具,在PRTools工具箱中有直接的函数confmat可供引用.具体使用方法如下所示: [C,NE,LABLIST] = CONFMAT(LAB1,LAB2,METHOD,FID) INPUT LAB1 Set of labels LAB2 Set of labels METHOD 'count' (default) to coun…
一.混淆矩阵 (一).简介 在人工智能中,混淆矩阵(confusion matrix)是可视化工具,特别用于监督学习,在无监督学习一般叫做匹配矩阵.在图像精度评价中,主要用于比较分类结果和实际测得值,可以把分类结果的精度显示在一个混淆矩阵里面.混淆矩阵是通过将每个实测像元的位置和分类与分类图像中的相应位置和分类像比较计算的. 混淆矩阵(confusion matrix)刻画一个分类器的分类准确程度.“混淆”一词也形象地表达了分类器面对多个分类时可能造成的混淆. (二).混淆矩阵(Confusio…
1.展现混淆矩阵 import matplotlib.pyplot as plt import itertools def plot_confusion_matrix(cm, classes, title='Confusion matrix', cmap=plt.cm.Blues): """ This function prints and plots the confusion matrix. cm:混淆矩阵值 classes:分类标签 """…
例子:一个Binary Classifier 假设我们要预测图片中的数字是否为数字5.如下面代码. X_train为训练集,每一个instance为一张28*28像素的图片,共784个features,每个feature代表某个像素的颜色强度(0-255之间).y_train_5为label, boolean类型的向量. from sklearn.linear_model import SGDClassifier sgd_clf = SGDClassifier(random_state=42)s…
1. 在计算出混淆矩阵之后,想自己绘制图形(并且在图形上显示汉字),可用 #coding=utf-8 import matplotlib.pyplot as plt import numpy as np confusion = np.array(([91,0,0],[0,92,1],[0,0,95])) # 热度图,后面是指定的颜色块,可设置其他的不同颜色 plt.imshow(confusion, cmap=plt.cm.Blues) # ticks 坐标轴的坐标点 # label 坐标轴标签…
混淆矩阵 衡量一个分类器性能的更好的办法是混淆矩阵.它基于的思想是:计算类别A被分类为类别B的次数.例如在查看分类器将图片5分类成图片3时,我们会看混淆矩阵的第5行以及第3列. 为了计算一个混淆矩阵,我们首先需要有一组预测值,之后再可以将它们与标注值(label)进行对比.我们也可以在测试集上做预测,但是最好是先不要动测试集(测试集仅需要在最后的阶段使用,在我们有了一个准备上线的分类器后,最后再用测试集测试性能).接下来,我们可以使用cross_val_predict() 方法: from sk…
1.7 Write an algorithm such that if an element in an MxN matrix is 0, its entire row and column are set to 0. LeetCode中的原题,请参见我之前的博客Set Matrix Zeroes 矩阵赋零.…
一.前言 表征分类精度的指标有很多,其中最常用的就是利用混淆矩阵.总体分类精度以及Kappa系数. 其中混淆矩阵能够很清楚的看到每个地物正确分类的个数以及被错分的类别和个数.但是,混淆矩阵并不能一眼就看出类别分类精度的好坏,为此从混淆矩阵衍生出来各种分类精度指标,其中总体分类精度(OA)和卡帕系数(Kappa)应用最为广泛. 总体分类精度(OA):指被正确分类的类别像元数与总的类别个数的比值:OA值虽然能很好的表征分类精度,但是对类别像元个数极度不平衡的多类地物来说,其值收到像元数据较多类别的影…
.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px solid #000; } .table { border-collapse: collapse !important; } .table td, .table th { background-color: #fff !important; } .table-bordered th, .table-bordere…