ROC曲线与AUC值


混淆矩阵 - confusion matrix

机器学习分类问题中,混淆矩阵(非监督学习中称匹配矩阵match matrix)用于表征算法的性能。如下表所示

True condition
Total population Condition positive Condition negative
Predicted
condition
Predicted condition
positive
True positive (TP)
Power
False positive (FP)
Type I error
Predicted condition
negative
False negative (FN)
Type II error
True negative (TN)

由此可得出:

  • 真阳性率(True positive rate): \(TPR = \frac{TP}{Condition\,positive} =\frac{TP}{TP + FN}\)
  • 假阳性率(False positive rate): \(FPR = \frac{FP}{Condition\,negative} = \frac{FP}{FP + TN}\)
  • 真阴性率(True negative rate): \(TNR = \frac{TN}{Condition\,negative} = \frac{TN}{FP + TN}\)
  • 假阴性率(False negative rate): \(FNR= \frac{FN}{Condition\,positive}=\frac{FN}{TP + FN}\)

ROC曲线

二分类通常是通过选定阈值对结果进行分类。比如概率选取阈值为0.5,大于0.5的为正样本,小于则为负样本。如果阈值增大,那么假阳性率降低,同时真阳性也会降低;反之阈值减小,虽然真阳性率为增加,但是假阳性率也会增加。阈值的选取在一定程度上反应了分类器的分类能力。

ROC曲线用于衡量二分类模型的性能,横坐标表示假阳性率(FPR),纵坐标表示真阳性率(TPR)。显然ROC的横纵坐标都在\([0,1]\)之间。

ROC Curve

ROC Curve

理想目标是TPR为1,FPR为0,也就是ROC曲线中的\((0,1)\)点。因此,ROC曲线越偏离45度对角线靠近左上角,分类性能越好。

AUC

为了更直观的反应分类性能,定义ROC曲线下的面积AUC评估分类效果。AUC直观的反应了ROC曲线表达分类的能力。显然最理想情况AUC为1,AUC为0.5时表征只能50%的可能区分正类和负类,对应于随机分类,也就是说该模型没有任何区分正负类的能力。AUC为0时,表示正类预测为负类,负类预测为正类,分类完全错误。

对于多分类问题(\(n\)大于2),通过画\(n\)个AUC-ROC曲线(每一个AUC-ROC曲线表示一个分类与其他所有分类的比较)。


一路嘿嘿

Bioinformatics, R enthusiast. Thoughts on reasarch, personal experience and other distractions.

Tags

blogdown font ggplot git github github pages Homebrew html hugo icon liner algebra linux machine learning R scholar sublime text 3 tidyverse