瞎聊机器学习——PR曲线、ROC曲线、AUC

简介: 瞎聊机器学习——PR曲线、ROC曲线、AUC

ROC曲线

什么是ROC曲线?

ROC曲线经常作为评估二分类的重要指标,其起源于军事领域,全称叫做receiver operating characteristic curve。

ROC曲线是二维平面内的曲线,其横坐标为假阳性率(FPR),纵坐标为真阳性率(TPR)他们的计算方法如下:

image.png

上式中:

  • P:真实的正样本的数量
  • N:真实的负样本的数量
  • TP:P个正样本中被分类器预测为正样本的个数
  • FP:N个负样本中被分类器预测为正样本的个数

image.png

如何绘制ROC曲线?

我们可以经过计算得到ROC曲线上的一个点,那么怎么去绘制这条曲线呢?

ROC曲线实际上是通过不断的移动分类器的截断点来生成曲线上的关键点的。


我们首先要对样本的预测概率从高到低进行排序,在输出最终的正例、负例之前我们需要指定一个阈值,预测概率大于该阈值的样本会被判为正例,小于该阈值的样本会被判为负例。


举个例子:

image.png

就本例来说,当截断点选择为正无穷时,模型把全部样本预测为负例,那么FP和TP必然都为0,FPR和TPR也都为0,因此曲线的第一个点的坐标就是 (0,0)。当把截断点调整为0.9时,模型预测1号样本为正样本,并且该样本确实 是正样本,因此,TP=1,20个样本中,所有正例数量为P=10, 故TPR=TP/P=1/10;这里没有预测错的正样本,即FP=0,负样本总数N=10, 故FPR=FP/N=0/10=0,对应ROC曲线上的点(0,0.1)。依次调整截断点,直到画出全部的关键点,再连接关键点即得到最终的ROC曲线,如下图所示:

image.png

AUC(Area Under Curve,ROC曲线下方的面积大小)

说完了绘制ROC曲线,那么如何来计算AUC呢?


根据名称我们就可以知道,AUC就是在计算ROC曲线下方的面积,该值能够量化的反映基于ROC曲线衡量出的模型性能。由于ROC的曲线一般都处于Y=X这条直线的上方(若果不是的化把概率反转变成1-p即可成为更好的分类器),所以AUC的取值一般在0.5-1之间。AUC越大,说明分类器越可能把真正的正样本排在前面,分类性能越好。


P-R曲线(Precision-Recall)

P-R曲线的存在是为了进行精确率和召回率的衡量,P-R曲线顾名思义P就代表精确率而R就是召回率,在P-R曲线中横轴是召回率,纵轴是精确率。对于一个排序模型来说,其P-R曲线上的一个点代表着,在某一阈值下,模型将大于该阈值的结果判定为正样本, 小于该阈值的结果判定为负样本,此时返回结果对应的召回率和精确率,整条P-R 曲线是通过将阈值从高到低移动而生成的。下图中,其中实线代表 模型A的P-R曲线,虚线代表模型B的P-R曲线。原点附近代表当阈值最大时模型的 精确率和召回率。

image.png

由图可见,当召回率接近于0时,模型A的精确率为0.9,模型B的精确率是1, 这说明模型B得分前几位的样本全部是真正的正样本,而模型A即使得分最高的几 个样本也存在预测错误的情况。并且,随着召回率的增加,精确率整体呈下降趋 势。但是,当召回率为1时,模型A的精确率反而超过了模型B。这充分说明,只用 某个点对应的精确率和召回率是不能全面地衡量模型的性能,只有通过P-R曲线的 整体表现,才能够对模型进行更为全面的评估。



相关文章
|
13天前
|
机器学习/深度学习 Python
【Python 机器学习专栏】混淆矩阵与 ROC 曲线分析
【4月更文挑战第30天】本文介绍了机器学习中评估模型性能的两种工具——混淆矩阵和ROC曲线。混淆矩阵显示了模型在不同类别上的预测情况,包括真正例、假正例、真反例和假反例,帮助评估模型错误类型和数量。ROC曲线则通过假正率和真正率展示了模型的二分类性能,曲线越接近左上角,性能越好。文章还提供了Python中计算混淆矩阵和ROC曲线的代码示例,强调它们在模型选择、参数调整和理解模型行为中的应用价值。
|
27天前
|
机器学习/深度学习
西瓜书机器学习AUC与ℓ-rank(loss)的联系理解以及证明(通俗易懂)
西瓜书机器学习AUC与ℓ-rank(loss)的联系理解以及证明(通俗易懂)
33 0
|
6月前
|
机器学习/深度学习 自然语言处理 PyTorch
机器学习-ROC曲线:技术解析与实战应用
机器学习-ROC曲线:技术解析与实战应用
164 0
|
9月前
|
机器学习/深度学习 算法 数据可视化
机器学习技术:如何使用交叉验证和ROC曲线提高疾病预测的准确性和效率?
ROC曲线则是一种可视化评估分类算法表现的图形呈现方法,用于绘制二分类模型的真阳性率和假阳性率之间的关系曲线。这种方法常用于比较不同分类器和优化分类器的性能。 接下来的部分将详细介绍如何使用这两种方法,并提供实际案例和技术实践以及最佳实践建议。
120 0
|
12月前
|
机器学习/深度学习 算法
【机器学习】分类模型评价指标(混淆矩阵、ROC)(已修改,放心看)
【机器学习】分类模型评价指标(混淆矩阵、ROC)(已修改,放心看)
149 0
|
机器学习/深度学习
简述机器学习模型性能度量中Precision、Recall、BEP、F1、ROC和AUC等概念的联系和区别
简述机器学习模型性能度量中Precision、Recall、BEP、F1、ROC和AUC等概念的联系和区别
301 0
简述机器学习模型性能度量中Precision、Recall、BEP、F1、ROC和AUC等概念的联系和区别
|
1天前
|
机器学习/深度学习 算法
理解并应用机器学习算法:决策树
【5月更文挑战第12天】决策树是直观的分类与回归机器学习算法,通过树状结构模拟决策过程。每个内部节点代表特征属性,分支代表属性取值,叶子节点代表类别。构建过程包括特征选择(如信息增益、基尼指数等)、决策树生成和剪枝(预剪枝和后剪枝)以防止过拟合。广泛应用在信贷风险评估、医疗诊断等领域。理解并掌握决策树有助于解决实际问题。
|
2天前
|
机器学习/深度学习 算法 数据挖掘
【机器学习】在使用K-means聚类算法时,如何选择K的值?
【5月更文挑战第11天】【机器学习】在使用K-means聚类算法时,如何选择K的值?
|
2天前
|
机器学习/深度学习 算法 数据挖掘
【机器学习】为什么K-means算法使用欧式距离度量?
【5月更文挑战第11天】【机器学习】为什么K-means算法使用欧式距离度量?
|
2天前
|
机器学习/深度学习 算法 数据可视化
【机器学习】描述K-means算法的步骤
【5月更文挑战第11天】【机器学习】描述K-means算法的步骤