声明:本部分学习来源于周志华老师《机器学习》,仅为记录学习过程,勿用于商业用途。
在机器学习当中经常会遇到P-R曲线,在周老师的机器学习当中也讲到了这个曲线的来历和意义。下面谈谈我对P-R曲线的理解。
首先是混淆矩阵,这里以二分类问题为例,混淆矩阵如下所示:
TP(True Positive): 真正例,即把正例正确预测为正例;
FP(False Positive): 假正例,即把负例错误预测为正例;
FN(False Negative): 假负例,即把正例错误预测为负例;
TN(True Negative): 真负例,即把负例正确预测为负例。
基于上面的混淆矩阵,我们可以计算查准率(P)和查全率(R):
关于如何理解这里的查准率和查全率,通俗的讲,查准率就是你的学习器有多准,自然它的计算方法就是真正例占学习器判断的正例总数的比例(当然这里面肯定有假正例);查全率就是你的学习器有多全面,自然它的计算方法就是真正例占所有真实情况为正例的总数的比例。
在很多情况下,学习器会给出一个预测结果,我们可以根据这个预测结果对样例进行排序,越排在前面的样例越有可能是真正是正例的样本。例如:
(好瓜,0.9)
(好瓜,0.8)
(坏瓜,0.7)
(好瓜,0.6)
(坏瓜,0.4)
分别为5个样例,我们已经按照预测结果对它们进行了排序,前面的好瓜和坏瓜是这个瓜真实的情况,后面的数字表示学习器判断出来的这个瓜为好瓜的可能性,那么我们的P-R曲线是怎么样绘制出来的呢?在周老师的西瓜书里面是这样说的:按此顺序逐个把样本作为正例进行预测,则每次可以计算当前的查准率和查全率。以查准率为纵轴,查全率为横轴作图,就能够得到查准率-查全率曲线,即P-R曲线。
那么到底怎么操作呢?实际上,我们每次可以设定一个阈值,当预测为正例的可能性大于这个阈值的时候,我们就把这个对象判定为正例,所以上面的一系列描述就是在不断的变动这个阈值,这个阈值在周老师的书里面叫做“截断点”。
首先我们将截断点设为0.9,自然只有第一个瓜会被预测成为好瓜,那么混淆矩阵就如下:
对应的查准率P=1,查全率R=1/3。
然后将截断点设为0.8,自然第一个瓜和第二个瓜都会被预测成为好瓜,那么混淆矩阵就如下:
混淆矩阵【2】.jpg
对应的查准率P=1,查全率R=2/3。
然后将截断点设为0.7,自然第一、二、三个瓜都会被预测成为好瓜,那么混淆矩阵就如下:
混淆矩阵【3】.jpg
对应的查准率P=2/3,查全率R=2/3。
然后将截断点设为0.6,自然第一、二、三、四个瓜都会被预测成为好瓜,那么混淆矩阵就如下:
混淆矩阵【4】.jpg
对应的查准率P=3/4,查全率为R=1。
然后将截断点设为0.4,自然所有的瓜都会被预测成为好瓜,那么混淆矩阵就如下:
混淆矩阵【5】.jpg
对应的查准率P=3/5,查全率R=1。
最后我们的R-P曲线图就是这样:
P-R曲线.jpg
一般来说,R-P曲线的整体呈下降趋势,当然也可能存在局部的波动。如果一个学习器的P-R曲线被另一个学习器的P-R曲线完全包住了,那么就意味着后者的性能优于前者,这可以理解为,后者无论是在查准率还是在查全率都优于前者,自然它就更好了。
今天又是摸鱼的一天!
网友评论