二分类算法评估指标

我们都知道机器学习要建模,但是对于模型性能的好坏我们并不知道是怎样的,很可能这个模型就是一个差的模型,对测试集不能很好的预测。那么如何知道这个模型是好是坏呢?必须有个评判的标准,需要用某个指标来衡量,这就是性能度量的意义。有了一个指标,就可以对比不同模型了,从而知道哪个模型更好,或者通过这个指标来调参优化选用的模型。

对于分类、回归、聚类等,分别有各自的评判标准。本篇主要介绍二分类算法(多分类可以扩展转化成二分类)的相关指标。评估一个二分类的分类器的性能指标有:准确率、查准率、查全率、F1值、AUC/ROC。前面几个比较直观,AUC/ROC相对抽象一点。经常会以AUC/ROC为代表来考察对分类算法指标的认知程度:什么是AUC/ROC?横轴纵轴都代表什么?有什么优点?为什么要使用它?不是因为它的复杂度更高,主要是它对项目场景的衡量更贴切。

背景介绍-混淆矩阵与常规定义

对于二分类模型,预测情况与实际情况会得出2*2=4种组合,形成混淆矩阵:

  预测正例    预测反例
 实际正例     TP: True Positive        FN: False Negative
 实际反例     FP: False Positive        TN: True Negative

真正(True  Positive , TP):被模型预测为正的正样本

假正(False Positive , FP):被模型预测为正的负样本

假负(False Negative , FN):被模型预测为负的正样本

真负(True  Negative , TN):被模型预测为负的负样本

真正率(True  Positive Rate,TPR):TPR=TP/(TP+FN),即被预测为正的正样本数 /正样本实际数

假正率(False Positive Rate,FPR) :FPR=FP/(FP+TN),即被预测为正的负样本数 /负样本实际数

假负率(False Negative Rate,FNR) :FNR=FN/(TP+FN),即被预测为负的正样本数 /正样本实际数

真负率(True  Negative Rate,TNR) :TNR=TN/(TN+FP),即被预测为负的负样本数 /负样本实际数

性能指标

准确率(Accuracy):  Accuracy = (TP+TN)/(TP+FN+FP+TN)

即正确预测的正反例数 /预测总数。准确率是预测正确的结果占总样本的百分比,是很自然就会想到的指标,但很多项目场景都不适用!最主要的原因是样本不平衡。举个简单的例子,比如在一个总样本中,正样本占90%,负样本占10%,样本是严重不平衡的。对于这种情况,我们只需要将全部样本预测为正样本即可得到90%的高准确率,但实际上我们并没有很用心的分类,只是随便无脑一分而已。这就说明了:由于样本不平衡的问题,导致了得到的高准确率结果含有很大的水分。即如果样本不平衡,准确率就会失效。

精确率(Precision): Precision = TP/(TP+FP)

即正确预测的正例数 /预测正例总数。可理解为查准率。在预测为正的记录中,有多少实际为正?

召回率(Recall): Recall = TP/(TP+FN)

即正确预测的正例数 /实际正例总数 。可理解为查全率。在实际为正的记录中,有多少预测为正?

F1 score : 2/F1 = 1/Precision + 1/Recall

精确率和召回率的调和值。由于Precision和Recall是一对不可调和的矛盾,很难同时提高二者,也很难综合评价。故提出F1来试图综合二者,F1是P和R的调和平均。F1更接近于两个数较小的那个,所以精确率和召回率接近时值最大。很多推荐系统会用的评测指标。

ROC曲线: 以假正率FPR为横轴,以真正率TPR为纵轴,绘制的曲线

FPR表示模型虚报的响应程度,而TPR表示模型预测响应的覆盖程度。我们希望:虚报的越少越好,覆盖的越多越好。总结一下就是FPR越低TPR越高(即ROC曲线越陡),那么模型就越好。ROC曲线无视样本不平衡。

画曲线的用意是:用假正率与真正率的变化趋势,来观察模型是否能在较低的假正率下得到较高的真正率。

AUC: Area under the ROC curve  

绘制ROC曲线时,横轴纵轴都是0~1,形成一个1*1的正方形。AUC就是在这个正方形里ROC曲线围成的面积。

如果连接正方形的对角线,它的面积正好是0.5。对角线的实际含义是:随机判断响应与不响应,正负样本覆盖率都是50%,即AUC =0.5表示随机分类器。AUC < 0.5表示差于随机分类器,没有建模价值;AUC = 1表示完美分类器,不存在;0.5 < AUC < 1,优于随机分类器,大多模型都在这个区间里。

AUC的一般判断标准

0.5 - 0.7:效果较低,但用于预测股票已经很不错了

0.7 - 0.85:效果一般

0.85 - 0.95:效果很好

0.95 - 1:效果非常好,但基本不太可能

场景决定指标

指标没有单纯的谁比谁好,选择指标还是要结合具体的使用场景。比如:

嫌疑人定罪:基于不错怪一个好人的原则,有时候放过一些嫌疑人也是值得的。宁漏,不错。

地震的预测:情愿发出100次警报10次都没漏,也不要发出10次警报对了8次漏了2次。宁错,不漏。

在地震场景中可以只看Recall=99.99999%(地震全中)时的Precision,其他指标就变得没有了意义。

学习参考:

https://www.cnblogs.com/zongfa/p/9431807.html 综合性介绍

https://www.jianshu.com/p/7b3cc8e44096 非AUC/ROC示例好理解

https://www.jianshu.com/p/f07a79dfeb1d AUC/ROC的讲解更清晰

原文地址:https://www.cnblogs.com/myshuzhimei/p/11746886.html

时间: 2024-11-05 11:52:56

二分类算法评估指标的相关文章

二分类模型评估指标

分类结果混淆矩阵(confusion matrix): 真实\预测 正例 反例 正例 TP FN 反例 FP TN 1.准确率--accuracy 定义:对于给定的测试数据集,分类器正确分类的样本数与总样本数之比.计算方法: 2.精确率--precision(P)定义:被判定为正例(反例)的样本中,真正的正例样本(反例样本)的比例.计算方法: 3.召回率--recall(R)定义:被正确分类的正例(反例)样本,占所有正例(反例)样本的比例.计算方法: 4.F1_score定义:基于精确率和召回率

机器学习算法分类及其评估指标

机器学习的入门,我们需要的一些基本概念: 机器学习的定义 M.Mitchell<机器学习>中的定义是: 对于某类任务T和性能度量P,如果一个计算机程序在T上以P衡量的性能随着经验E而自我完善,那么我们称这个计算机程序从经验E中学习. 算法分类 两张图片很好的总结了(机器学习)的算法分类: 评估指标 分类(Classification)算法指标: Accuracy准确率 Precision精确率 Recall召回率 F1 score 对于分类问题的结果可以用下表表示(说明:True或者False

001 分类模型评估指标(二)

二分类问题 多分类问题 连续变量问题 二.简单二分类问题的延伸 如果只是简单的二分类问题,只需要一个二分类的混淆矩阵即可对模型进行评估.但如果问题发生如下变化: 情况1:基于同一组数据集多次训练/测试不同的模型 情况2:基于多个数据集测试评估同一个模型 情况3:执行多分类任务 此时,会产生多个不同的混淆矩阵,则需要引入两个新的概念"宏"与"微". (1)"宏": 当产生n个混淆矩阵时,分别计算每个混淆矩阵的Precision,recall,F-m

分类模型评估指标

对于分类模型的评价指标主要有错误率 .准确率.查准率.查全率.混淆矩阵.F1值.AUC和ROC. 1.1 错误率和准确率 错误率(Error rate):通常把分类错误的样本数占总样本总数的比例称为"错误率". 准确率(Accuracy):是指分类正确的样本数占样本总数的比例,即准确率=1-错误率. 1.2 查准率.查全率.混淆矩阵和F1值 查准率(Precision):又称精确率,预测为正例的样本中,真正为正例的比率. 查全率(Recall):又称召回率,预测为正例的真实正例(TP)

机器学习基础 | 分类模型评估指标

目录 成对指标 综合指标 图形指标 在处理机器学习的分类问题中,我们需要评估分类结果的好坏以选择或者优化模型,本文总结二分类任务中常用的评估指标.对于多分类任务的评估指标,可以参考这篇文章 先从我们最熟知的混淆矩阵(confusion matrix)说起. source 鉴于混淆矩阵看着比较抽象,可以参考下图 常用的评估指标可以分为3类: 成对指标,包括正确率(精度)&错误率,Precision&Reall,TPR(Sentitivity)&TNR(Specificity)等; 综

matlab 实现感知机线性二分类算法(Perceptron)

感知机是简单的线性分类模型 ,是二分类模型.其间用到随机梯度下降方法进行权值更新.参考他人代码,用matlab实现总结下. 权值求解过程通过Perceptron.m函数完成 function W = Perceptron(X,y,learnRate,maxStep) % Perceptron.m % Perception Learning Algorithm(感知机) % X一行为一个样本,y的取值{-1,+1} % learnRate:学习率 % maxStep:最大迭代次数 [n,m] =

R语言与分类算法的绩效评估(转)

关于分类算法我们之前也讨论过了KNN.决策树.naivebayes.SVM.ANN.logistic回归.关于这么多的分类算法,我们自然需要考虑谁的表现更加的优秀. 既然要对分类算法进行评价,那么我们自然得有评价依据.到目前为止,我们讨论分类的有效性都是基于分类成功率来说的,但是这个指标科学吗?我们不妨考虑这么一个事实:一个样本集合里有95个正例,5个反例,分类器C1利用似然的思想将所有的实例均分成正例,分类成功率为95%:分类器C2成功分出了80个正例,3个反例,分类成功率仅83%.我们可以说

分类算法中的ROC与PR指标

做过图像识别.机器学习或者信息检索相关研究的人都知道,论文的实验部分都要和别人的算法比一比.可怎么比,人多嘴杂,我说我的方法好,你说你的方法好,各做各的总是不行--没规矩不成方圆.于是慢慢的大家就形成了一种约定,用ROC曲线和PR曲线来衡量算法的优劣.关于ROC曲线和PR曲线的详细介绍可参考资料: ROC Analysis and the ROC Convex Hull Tom Fawcett,An introduction to ROC analysis Jesse Davis,Mark Go

隐马尔科夫模型HMM(二)前向后向算法评估观察序列概率

隐马尔科夫模型HMM(一)HMM模型 隐马尔科夫模型HMM(二)前向后向算法评估观察序列概率 隐马尔科夫模型HMM(三)鲍姆-韦尔奇算法求解HMM参数(TODO) 隐马尔科夫模型HMM(四)维特比算法解码隐藏状态序列(TODO) 在隐马尔科夫模型HMM(一)HMM模型中,我们讲到了HMM模型的基础知识和HMM的三个基本问题,本篇我们就关注于HMM第一个基本问题的解决方法,即已知模型和观测序列,求观测序列出现的概率. 1. 回顾HMM问题一:求观测序列的概率 首先我们回顾下HMM模型的问题一.这个