目录
前言
本文为自己自学内容的记录,其中多有借鉴别人博客的地方,一并在参考文献中给出链接。其中内容有理解不到位的地方,各位大佬在评论区给出修改意见,感恩🌹。
一. 混淆矩阵(Confusion Matrix)
定义:混淆矩阵是机器学习中总结分类模型预测结果的情形分析表,以矩阵形式将数据集中的记录按照真实的类别与分类模型预测的类别判断两个标准进行汇总。下面以二分类为例,对混淆矩阵进行介绍。
当有一个分类器A,其作用是判断一张图片内容是不是汉堡🍔,如果想要知道分类器A的分类效果如何,应该怎么判断呢?最简单的方法是将一堆图片扔给分类器A,让其进行判断,将其判断结果与真实情况进行对比。判断结果如下:(X代表不是汉堡,O代表是汉堡)
将图中结果按照预测类别和真实类别进行统计,会得到一个2×2的矩阵,4个数字分别用4个名词代替,得到的矩阵就是混淆矩阵,混淆矩阵可以反映出分类器A在测试集上的分类效果。
二、准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F1值(F1-score)
当有两个分类器A和B,它们对同一堆图片进行分类预测,将其预测结果统计如下:
如果想要比较两个分类器哪个分类效果比较好,我们可以用几个指标进行判断。
以分类器A的结果为例:
①准确率:【在所有样本中,预测正确的概率】
Accuracy(分类器分对了多少)=(1+5)/(1+5+1+2)= 0.67
②精确率:【在分类器认为是汉堡的样本中,有多少是真的汉堡的概率】
Precision = 1/(1+2)=0.33
③召回率:【在真实类别为汉堡的图片中,有多少被分类器判断为汉堡】
Recall = 1/(1+1) =0.5
④F1值:【有时精确率和召回率会发生冲突,则需要综合考虑它们。F1是准确率和精确率的调和平均】
F 1 = ( 1 + β 2 ) ⋅ ( P r e c i s i o n ⋅ R e c a l l ) / ( β 2 ⋅ Precision+Recall ) F1 = (1+\beta^{^2})\cdot(Precision\cdot Recall)/(\beta^{^2}\cdot\text{Precision+Recall}) F1=(1+β2)⋅(Precision⋅Recall)/(β2⋅Precision+Recall)
当认为Precision和Recall同等重要时,β=1,即:
F 1 = 2 / ( 1 / P r e c i s i o n + 1 / R e c a l l ) = ( 2 ⋅ P r e c i s i o n ⋅ R e c a l l ) / ( P r e c i s i o n + R e c a l l ) = ( 2 ⋅ 0.33 ⋅ 0.5 ) / ( 0.33 + 0.5 ) = 0.40 \begin{aligned} & F1=2/(1/\mathrm{Precision}+1/\mathrm{Recall})=(2\cdot\mathrm{Precision}\cdot\mathrm{Recall})/(\mathrm{Precision}+\mathrm{Recall})=(2\cdot0.33\cdot0.5)/\\ & (0.33+0.5)=0.40\end{aligned} F1=2/(1/Precision+1/Recall)=(2⋅Precision⋅Recall)/(Precision+Recall)=(2⋅0.33⋅0.5)/(0.33+0.5)=0.40
三. ROC曲线与AUC值
当分类器对一张图片进行分类时,会首先得到图片属于汉堡的概率,进而对图片类别进行预测,将阈值设为0.5,当概率>0.5,分类器认为是汉堡,反之认为不是汉堡。
将上图所示的结果进行统计,得到唯一的一个混淆矩阵。对正类取阈值0—1渐变,从全正类到部分正类的过程中就有了ROC曲线。
T
P
R
=
T
P
/
P
=
T
P
/
(
T
P
+
F
N
)
F
P
R
=
F
P
/
N
=
F
P
/
(
F
P
+
T
N
)
TPR = TP/P = TP/(TP+FN) \qquad FPR = FP/N = FP/(FP+TN)
TPR=TP/P=TP/(TP+FN)FPR=FP/N=FP/(FP+TN)
对于一个混淆矩阵,可以求出TPR和FPR两个指标,以FPR为横坐标,TPR为纵坐标,则一个混淆矩阵可以与二维空间中唯一的一个点对应,很多个混淆矩阵就可以对应到二维空间中的一条曲线,得到的曲线就是ROC曲线。ROC值与X轴之间的面积就是AUC值,AUC值越大,表明分类器的分类效果越好。
四. ROC曲线与PR曲线的关系
当把ROC曲线的横坐标换成Recall值,纵坐标换成Precision值,把这些点连起来得到的曲线就是PR曲线,PR曲线越靠近右上角效果越好。每一个ROC曲线都有唯一的一条PR曲线与之对应。
在ROC曲线中,如果曲线L1曲线优于L2曲线(更接近于左上方),则曲线L1在PR曲线中也优于L2(更接近右上方)。
参考文献
[1]:【小萌五分钟】机器学习 | 模型评估: ROC曲线与PR曲线(一): ROC曲线与PR曲线的关系】 https://www.bilibili.com/video/BV1pg4y1i7CN/?share_source=copy_web&vd_source=906357a19e2b8c3eba01975e75083480
[2]:Davis, J., & Goadrich, M. (2006, June). The relationship between Precision-Recall and ROC curves. In Proceedings of the 23rd international conference on Machine learning (pp. 233-240).