机器学习PR和ROC曲线理解
解决复习机器学习的时候产生的疑惑,非本专业
PR曲线
定义
周志华主编的机器学习中这样定义PR曲线:根据学习器的预测结果对样例进行排序,排在最前面的是学习器认为“最可能”时正例的样本,排在最后的则是学习器认为“最不可能”是正例的样本,然后按照已经排好的顺序逐个把样本作为正例进行预测,每次计算当前的查全率,查准率并绘制出曲线。
理解
正确的理解是:使用学习器(模型)进行预测,比如二分类问题,会计算出各个样本是正例的概率,先按照这个概率进行排序(当然学习器会产生分类结果对应一个PR曲线上的点),然后从概率最大开始的依次认为是正例(排在前面的都是),后面的都是反例,每往后认为一个是正例,计算一次P和R,作为P-R曲线上的点。
这样最开始P(precision)=1.0,R(recall)=0.0,最后R=1.0,P=真实情况下正例的比例。中间随着正例的增多,R必定增大,因为加入的正例中必然会是真正例(TP)增多。P随着加入的正例中会出现假正例会逐渐减小(但最开始不一定会变,如果学习器分类性能好的话)。
应用
- P-R曲线的面积
P-R曲线面积越大对应性能越好,很容易理解,面积越大,说明学习器在查准率和查全率取得”双高“的比力越大。
P-R曲线面积估算不容易,但是当一个曲线包住另一个曲线时,显然性能更好。而曲线相交时需要估算面积,难以计算。 - 平衡点(Break-Even Point,简称BEP)
当查准率=查全率时,取值越大,性能越好
ROC曲线
定义
分类的实质时由学习器为测试样本产生一个实值或概率预测,然后将预测值和一个分类阈值比较,大于阈值分为正例,小于阈值分为反例。这样,分类阈值的选择就决定了预测结果的好坏,直接决定了学习器的性能,泛化能力。
ROC曲线,类似于PR曲线,将学习器预测结果排序,然后然后调整分类阈值的大小,由大到小,对应每个阈值产生一次预测,计算当前预测的真正例率和假正例率,分别为纵轴和横轴并绘图。
理解
实际上调整阈值的大小,逐渐变化时计算出TPR和FPR。每一个阈值只需要将大于阈值的判为正例,小于阈值的判为负例即可,不同于PR曲线依次设为正例。
应用
ROC曲线也通过面积大小来评定学习器性能,面积越大性能越优,AUC是一种计算ROC曲线面积方法,类似于定积分中黎曼和的有限项形式。区间长度为相邻两点的横轴间距,函数值为曲线上相邻两点纵走的纵轴的均值。假设ROC曲线上的点列为
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
…
,
(
x
m
,
y
m
)
}
\scriptsize{\{(x_1,y_1),(x_2,y_2),\dots,(x_m,y_m)\}}
{(x1,y1),(x2,y2),…,(xm,ym)},则AUC计算公式为
A
U
C
=
1
2
∑
i
=
1
m
−
1
(
x
i
−
1
−
x
i
)
⋅
(
y
i
+
y
i
+
1
)
AUC= \frac{1}{2} \sum_{i=1}^{m-1} (x_{i-1}-x_i)·(y_i+y_{i+1})
AUC=21i=1∑m−1(xi−1−xi)⋅(yi+yi+1)