ROC曲线(Receiver Operating Characteristic Curve)是一种用于评估二分类模型性能的图形化工具,主要用于展示在不同阈值(Threshold)下模型的真阳性率(True Positive Rate,TPR)和假阳性率(False Positive Rate,FPR)之间的关系。
ROC曲线最早起源于二战期间,用于分析雷达信号检测敌方飞机的能力,随后逐渐扩展到其他领域,特别是医学诊断。自20世纪末,ROC已被广泛应用于机器学习,通过改变分类阈值,展示模型将正类与负类区分开来的能力,以此找到最佳的模型参数和决策阈值。
基本概念
1.混淆矩阵(Confusion Matrix)
1.1 组成类别
1.2 评估指标
2. AUC(Area Under the Curve)
3.约登指数(Youden's index)
曲线组成
也称为误差矩阵,用于展示实际类别与模型预测类别之间的关系,以此评估有监督学习中分类模型的性能。混淆矩阵对于二分类和多分类问题都适用,在流行病学研究中,它被应用于评估筛检试验的真实性。
预测 | 实际 | |
---|---|---|
正例 | 负例 | |
正例 | 真阳性(TP) | 假阳性(FP) |
负例 | 假阴性(FN) | 真阴性(TN) |
(ROC曲线是多个混淆矩阵结果的组合)
真阳性(True Positive,TP):模型正确地将正类预测为正类的数量。
假阴性(False Negative,FN):模型错误地将正类预测为负类的数量。
假阳性(False Positive,FP):模型错误地将负类预测为正类的数量。
真阴性(True Negative,TN):模型正确地将负类预测为负类的数量。
通过混淆矩阵,我们可以计算出多种评估指标,从不同角度评估模型性能:
准确率(Accuracy):模型正确预测的总体比例,计算公式为:
精确度(Precision):模型预测为正类中实际为正类的比例,计算公式为:
召回率(Recall)或灵敏度(Sensitivity):实际为正类中模型预测为正类的比例,计算公式为:
特异度(Specificity):实际为负类中模型预测为负类的比例,计算公式为:
F1分数(F1 Score):精确度和召回率的调和平均数,计算公式为:
曲线下面积,用于综合评价模型在各种不同阈值下的表现。AUC的取值范围在0~1,常用于量化比较不同分类器的性能,AUC值越高,表示模型性能越好。
AUC = 1.0 :完美分类器,模型没有任何的分类错误;
AUC > 0.5 :模型具有将正类和负类区分开来的能力,且性能超过了随机猜测;
AUC < 0.5 :模型的表现还不如随机猜测,表明模型存在严重问题。
也称为正确指数,常用于确定最佳阈值,即约登指数最大的时候,模型分类能力最佳。计算方式为:
1.真阳性率:也称为灵敏度、召回率或命中率,作为纵坐标;
2.假阳性率:是在所有实际负例中,被错误地判断为正例的比例,作为横坐标;
3.阈值:是界定正类和负类的分界线。通过调整阈值,模型预测正类的标准更高或更低,从而影响到TPR和FPR的值。ROC曲线上的每一个点都对应一个特定的决策阈值。
4.AUC:ROC曲线与坐标轴对角线组成的面积。
曲线绘制:在一个坐标图上,将FPR作为横轴(X轴),TPR作为纵轴(Y轴)。对于一个二分类模型,通过改变决策阈值,我们可以得到一系列的(FPR, TPR)点,将这些点连线就形成了ROC曲线。理想情况下,最好的预测模型的ROC曲线会尽可能地靠近左上角,意味着具有更高的TPR和更低的FPR。