2020.08.25更新: 修改了ROC曲线中TPR公式的错误。
2020.07.25更新: 修改了混淆矩阵,每一行为实际值,每一列与预测值。

机器学习分类问题指标理解

  • 0. 一个例子
  • 1.准确率(Accuracy)
  • 2.精确率(Precision)
  • 3.召回率(Recall)
  • 4.F1-score
  • 5.ROC曲线(Receiver Operating Characteristic Curve)
  • 6.P-R曲线(Precision-Recall Curve)
  • 7.AUC面积(Area Under ROC Curve)

0. 一个例子

在分类(classification)问题的模型评估中,常用的评测指标有以下7个:

  1. 准确率(accuracy)
  2. 精确率(precision)
  3. 召回率(recall)
  4. F1-Score
  5. ROC曲线
  6. P-R曲线
  7. AUC面积

下面,通过著名的鸢尾花分类的例子来具体说明。

鸢尾花的特征有4个:

  1. Sepal Length(花萼长度)
  2. Sepal Width(花萼宽度)
  3. Petal Length(花瓣长度)
  4. Petal Width(花瓣宽度)

鸢尾花的种类有3种:

  1. Iris Setosa(山鸢尾)
  2. Iris Versicolour(杂色鸢尾)
  3. Iris Virginica(维吉尼亚鸢尾)

数据集中共150条数据,每类鸢尾花有50条数据。
选择KNN算法进行分类(欧式距离,K=8),得到模型的分类结果如下表所示(混淆矩阵[confusion matrix]):

预测为Iris-versicolor 预测为Iris-virginica 预测为Iris-setosa
实际为Iris-versicolor 49 1 0
实际为Iris-virginica 4 46 0
实际为Iris-setosa 1 0 49

几个定义:

  • TP(True Positive,真正):将正类预测为正类
  • TN(True Negative,真负):将负类预测为负类
  • FP(False Positive,假正):将负类预测为正类
  • FN(False Negative,假负):将正类预测为负类

可以看出,前两个是我们期望出现的情况,后两个是期望不出现的情况。


1.准确率(Accuracy)

定义:正确分类的样本数与总样本数之比

a c c u r a c y = T P + T N T P + T N + F P + F N accuracy=\frac {TP+TN}{TP+TN+FP+FN} accuracy=TP+TN+FP+FNTP+TN​

在上面的例子中,

a c c u r a c y = 49 + 46 + 49 49 + 4 + 1 + 1 + 46 + 0 + 0 + 0 + 49 × 100 % = 96.00 % accuracy=\frac {49+46+49}{49+4+1+1+46+0+0+0+49}×100\%=96.00\% accuracy=49+4+1+1+46+0+0+0+4949+46+49​×100%=96.00%

  准确率的概念很好理解,就是分类正确的比例,是一个非常常用的评估指标。但是,准确率高并不代表分类算法就好,当各个类别的样本分布很不均匀时,即使准确率达到99%也没用。
  还是用上面的例子,如果Iris Setosa的样本数为98,Iris Versicolour和Iris Virginica的样本数都为1,那么,分类器只需要把结果全部置为Iris Setosa,就可以获得98%的正确率。所以,只靠准确率来评价一个模型的优劣是不全面的。

2.精确率(Precision)

定义:预测为正类的结果中,正确个数的比例

p r e c i s i o n = T P T P + F P precision=\frac {TP}{TP+FP} precision=TP+FPTP​

在上面的例子中,每一的数据可以计算一个精确率:

p r e c i s i o n ( I r i s − v e r s i c o l o r ) = 49 49 + 4 + 1 × 100 % = 90.74 % precision(Iris-versicolor)=\frac {49}{49+4+1}×100\%=90.74\% precision(Iris−versicolor)=49+4+149​×100%=90.74%
p r e c i s i o n ( I r i s − v i r g i n i c a ) = 46 1 + 46 × 100 % = 97.87 % precision(Iris-virginica)=\frac {46}{1+46}×100\%=97.87\% precision(Iris−virginica)=1+4646​×100%=97.87%
p r e c i s i o n ( I r i s − s e t o s a ) = 49 49 × 100 % = 100.00 % precision(Iris-setosa)=\frac {49}{49}×100\%=100.00\% precision(Iris−setosa)=4949​×100%=100.00%
精确率又称查准率,其意义是判断模型的结果是否“找得对”。

3.召回率(Recall)

定义:实际为正类的样本中,正确判断为正类的比例

r e c a l l = T P T P + F N recall=\frac {TP}{TP+FN} recall=TP+FNTP​

在上面的例子中,每一的数据可以计算一个召回率:

r e c a l l ( I r i s − v e r s i c o l o r ) = 49 49 + 1 × 100 % = 98.00 % recall(Iris-versicolor)=\frac {49}{49+1}×100\%=98.00\% recall(Iris−versicolor)=49+149​×100%=98.00%
r e c a l l ( I r i s − v i r g i n i c a ) = 46 46 + 4 × 100 % = 92.00 % recall(Iris-virginica)=\frac {46}{46+4}×100\%=92.00\% recall(Iris−virginica)=46+446​×100%=92.00%
r e c a l l ( I r i s − s e t o s a ) = 49 1 + 49 × 100 % = 98.00 % recall(Iris-setosa)=\frac {49}{1+49}×100\%=98.00\% recall(Iris−setosa)=1+4949​×100%=98.00%
召回率又称查全率,其意义是判断模型的结果是否“找得全”。

4.F1-score

精确率和召回率是一对矛盾的指标,因此需要放到一起综合考虑。F1-score是精确率和召回率的调和平均值。

2 F 1 = 1 P + 1 R \frac {2}{F_1}=\frac {1}{P}+\frac {1}{R} F1​2​=P1​+R1​

其中,P就是presicion,R就是recall,公式前面已给出。

故:

F 1 = 2 P R P + R = 2 T P 2 T P + F P + F N F_1=\frac {2PR}{P+R}=\frac {2TP}{2TP+FP+FN} F1​=P+R2PR​=2TP+FP+FN2TP​

上式是当精确率和召回率的权值都为1的情况,也可以加上一个不为1的权值 β \beta β:

F β = 1 1 + β 2 ( 1 P + β 2 R ) = ( 1 + β 2 ) P R β 2 P + R F_\beta=\frac {1}{1+\beta^2}(\frac {1}{P}+\frac {\beta^2}{R})=\frac {(1+\beta^2)PR}{\beta^2P+R} Fβ​=1+β21​(P1​+Rβ2​)=β2P+R(1+β2)PR​
当 β > 1 \beta>1 β>1时,召回率有更大影响;
当 β < 1 \beta<1 β<1时,精确率有更大影响。

5.ROC曲线(Receiver Operating Characteristic Curve)

再来2个公式:

  • 假正率(False Positive Rate, FPR)
  • 真正率(True Positive Rate, TPR)

F P R = F P F P + T N FPR=\frac {FP}{FP+TN} FPR=FP+TNFP​

T P R = T P T P + F N TPR=\frac {TP}{TP+FN} TPR=TP+FNTP​
显然,FPR越低越好,TPR越高越好
在ROC曲线中,横坐标是FPR,纵坐标是TPR,下图就是例子中versicolor类的ROC曲线:

图1:ROC曲线

6.P-R曲线(Precision-Recall Curve)

在P-R曲线中,横坐标是recall,纵坐标是precision,下图就是例子中versicolor类的P-R曲线:

图2:P-R曲线

7.AUC面积(Area Under ROC Curve)

AUC面积表示ROC曲线下方的面积大小,通过积分就可以计算。AUC越大越好。
由于ROC曲线一般在 y = x y=x y=x直线的上方,故AUC一般为0.5~1.0。


以上是7个评估指标的简单理解,后面会对最后3个指标再做详细介绍。
To Be Continued…


欢迎关注我的微信公众号:

机器学习分类问题指标理解——准确率(accuracy)、精确率(precision)、召回率(recall)、F1-Score、ROC曲线、P-R曲线、AUC面积相关推荐

  1. python垃圾分类准确率计算公式_准确率(Accuracy), 精确率(Precision), 召回率(Recall)和F1-Measure...

    机器学习(ML),自然语言处理(NLP),信息检索(IR)等领域,评估(Evaluation)是一个必要的 工作,而其评价指标往往有如下几点:准确率(Accuracy),精确率(Precision), ...

  2. 【机器学习】准确率(Accuracy), 精确率(Precision), 召回率(Recall)和F1-Measure

    在机器学习.数据挖掘.推荐系统完成建模之后,需要对模型的效果做评价. 业内目前常常采用的评价指标有准确率(Precision).召回率(Recall).F值(F-Measure)等,下图是不同机器学习 ...

  3. 准确率(Accuracy), 精确率(Precision), 召回率(Recall)和F1-Measure(对于二分类问题)

    首先我们可以计算准确率(accuracy),其定义是: 对于给定的测试数据集,分类器正确分类的样本数与总样本数之比.也就是损失函数是0-1损失时测试数据集上的准确率. 下面在介绍时使用一下例子: 一个 ...

  4. 一文看懂分类模型的评估指标:准确率、精准率、召回率、F1等

    2019-11-21 21:59:23 机器学习模型需要有量化的评估指标来评估哪些模型的效果更好. 本文将用通俗易懂的方式讲解分类问题的混淆矩阵和各种评估指标的计算公式.将要给大家介绍的评估指标有:准 ...

  5. 机器学习——二分类、多分类的精确率和召回率

    机器学习有很多评估的指标.有了这些指标我们就横向的比较哪些模型的表现更好.我们先从整体上来看看主流的评估指标都有哪些: 分类问题评估指标: 准确率 – Accuracy 精确率(差准率)- Preci ...

  6. auc计算公式_图解机器学习的准确率、精准率、召回率、F1、ROC曲线、AUC曲线

    机器学习模型需要有量化的评估指标来评估哪些模型的效果更好. 本文将用通俗易懂的方式讲解分类问题的混淆矩阵和各种评估指标的计算公式.将要给大家介绍的评估指标有:准确率.精准率.召回率.F1.ROC曲线. ...

  7. 广告召回率是什么意思_准确率、精确率、召回率的含义

    最近在看机器学习的,要理解准确率.精确率.召回率的含义,首先要理解 TP.FN.FT 和  TN 的含义. TP.FN.FT 和  TN 这几个概念一直搞得不太清楚.记录一下.看了别人的文章,举的例子 ...

  8. 准确率、精确率、召回率、F1-measure

    文章目录 准确率(Accuracy) 精确率(precision) 召回率(recall) F1-measure值 学习理解网站 - p'(Predicted) n'(Predicted) p(Act ...

  9. 准确率、精确率、召回率、F1-measure简单总结

    - 相关(Relevant),正类 无关(NonRelevant),负类 被检索到(Retrieved) true positives(TP 正类判定为正类) false positives(FP 负 ...

最新文章

  1. Nature Methods:微生物来源分析包SourceTracker——结果解读和使用教程
  2. Gitlab+Gerrit+Jenkins完整对接
  3. 【BZOJ 2460 元素】
  4. 农村电商谋定双创工程-李玉庭:互联网+农产品重整流通
  5. Linux I2C核心、总线与设备驱动(二)
  6. Html5 各属性详解
  7. mysql遇见Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre的问题
  8. 面试题,如何让你从0-1的做一款产品出来,你会怎么做?
  9. 百度对TOP等冷门域名冷淡
  10. java为什么密码比字符串更喜欢char []?
  11. java jxl写excel_java jxl 大量数据写入excel,比如上千万条
  12. 星座是按阴历还是阳历
  13. numpy保存和读取dictionary字典
  14. 排序算法之——快速排序分析
  15. Tomcat 下载、安装、配置图文教程
  16. Drools规则引擎讲解
  17. 微信公众号+web后台的工资条发放功能的实现
  18. 《麦田里的守望者》--[美]杰罗姆·大卫·塞林格
  19. Linux 文件的加密解密
  20. dom4j关于Element和Node的理解

热门文章

  1. 决定AI智能机器人智能的因素有哪些
  2. xargs的简单介绍
  3. 计算机系统概述(思维导图)
  4. 习惯说——“一屋不扫何以扫天下”
  5. HR眼中的“群面”技巧
  6. JVM Tenured space is exhausted
  7. Github每日精选(第40期):为 Windows 带来 macOS “快速查看”功能QuickLook
  8. 旋转矩阵的构造和螺旋三角阵的构造
  9. z77主板可以用nv_性价比无敌手!七彩虹Z77 X3主板评测
  10. 达梦数据库常用图形化工具介绍