混淆矩阵是监督学习中的一种可视化工具,主要用于比较分类结果和实例的真实信息(outcom vs. ground truth)。矩阵中的每一行代表实例的预测类别,每一列代表实例的真实类别。在混淆矩阵中,每一个实例可以划分为四种类型之一,True Positive\False Positive\False Negative\True Negetive(TP\FP\FN\TN),如图1所示。其中,Positive代表预测实例来自正类,Negetive代表预测实例来自负类;True代表预测正确,False代表预测错误。
由混淆矩阵可以计算一系列的评价指标,如accurancy、precision、recall等等。
回到ROC上来,ROC的全名叫做Receiver Operating Characteristic。ROC关注两个指标true positive rate (TPR= TP / [TP + FN] ) 和 false positive rate (FPR= FP / [FP + TN] ),直观上,TPR代表能将正例分对的概率,FPR代表将负例错分为正例的概率。在ROC 空间中,每个点的横坐标是FPR,纵坐标是TPR,这也就描绘了分类器在TP(真正的正例)和FP(错误的正例)间的trade-off。ROC的主要分析工具是一个画在ROC空间的曲线——ROC curve。我们知道,对于二值分类问题,实例的值往往是连续值,我们通过设定一个阈值,将实例分类到正类或者负类(比如大于阈值划分为正类)。因此我们可以变化阈值,根据不同的阈值进行分类,根据分类结果计算得到ROC空间中相应的点,连接这些点就形成ROC curve。ROC curve经过(0,0)(1,1),实际上(0, 0)和(1, 1)连线形成的ROC curve实际上代表的是一个随机分类器。一般情况下,这个曲线都应该处于(0, 0)和(1, 1)连线的上方。如图2所示。
用ROC curve来表示分类器的performance很直观好用。可是,人们总是希望能有一个数值来标志分类器的好坏。于是Area Under roc Curve(AUC)就出现了。顾名思义,AUC的值就是处于ROC curve下方的那部分面积的大小。通常,AUC的值介于0.5到1.0之间,较大的AUC代表了较好的performance。
Precision 和 Recall 定义:
Precision = tp/(tp+fp) Recall = tp/(tp+fn)
查准率(Precision) = 识别出的真正的正面观点数/所有的识别为正面观点的条数
查全率(Recall) = 识别出的真正的正面观点数/样本中所有的真正正面观点的条数
转自: http://bubblexc.com/y2011/148/
参见:http://en.wikipedia.org/wiki/Precision_and_recall
参考资料:
- http://en.wikipedia.org/wiki/Receiver_operating_characteristic
- http://blog.csdn.net/chjjunking/archive/2010/10/11/5933105.aspx