<zz>模式识别中分类器性能评估参数的解释---混淆矩阵,ROC
2012-05-27 13:30
344 查看
在使用MATLAB pattern recognition 工具箱做data classification时,最终评价classifier性能的好坏,工具箱给出了confusion matrix和roc指标,那如何解释这些指标呢?首先可以参考维基百科:confusion matrix,
receiver operating characteristic.
很多时候,我们希望对一个二值分类器的性能进行评价,AUC正是这样一种用来度量分类模型好坏的一个标准。现实中样本在不同类别上的不均衡分布(class distribution imbalance problem),使得accuracy这样的传统的度量标准不能恰当的反应分类器的性能。举个例子:测试样本中有A类样本90个,B 类样本10个。若某个分类器简单的将所有样本都划分成A类,那么在这个测试样本中,它的准确率仍为90%,这显示是不合理的。为了解决上述问题,人们从医疗分析领域引入了一种新的分类模型performance评判方法——ROC分析。在介绍ROC之前,首先讨论一下混淆矩阵(Confusion
matrix)。
混淆矩阵是监督学习中的一种可视化工具,主要用于比较分类结果和实例的真实信息(outcom vs. ground truth)。矩阵中的每一行代表实例的预测类别,每一列代表实例的真实类别。在混淆矩阵中,每一个实例可以划分为四种类型之一,True Positive\False Positive\False Negative\True Negetive(TP\FP\FN\TN),如图1所示。其中,Positive代表预测实例来自正类,Negetive代表预测实例来自负类;True代表预测正确,False代表预测错误。
图1:Confusion Matrix
由混淆矩阵可以计算一系列的评价指标,如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所示。
图2 ROC Curve
用ROC curve来表示分类器的performance很直观好用。可是,人们总是希望能有一个数值来标志分类器的好坏。于是Area Under roc Curve(AUC)就出现了。顾名思义,AUC的值就是处于ROC curve下方的那部分面积的大小。通常,AUC的值介于0.5到1.0之间,较大的AUC代表了较好的performance。
计算ROC curve的AUC值的代码可以在这找到。
receiver operating characteristic.
很多时候,我们希望对一个二值分类器的性能进行评价,AUC正是这样一种用来度量分类模型好坏的一个标准。现实中样本在不同类别上的不均衡分布(class distribution imbalance problem),使得accuracy这样的传统的度量标准不能恰当的反应分类器的性能。举个例子:测试样本中有A类样本90个,B 类样本10个。若某个分类器简单的将所有样本都划分成A类,那么在这个测试样本中,它的准确率仍为90%,这显示是不合理的。为了解决上述问题,人们从医疗分析领域引入了一种新的分类模型performance评判方法——ROC分析。在介绍ROC之前,首先讨论一下混淆矩阵(Confusion
matrix)。
混淆矩阵是监督学习中的一种可视化工具,主要用于比较分类结果和实例的真实信息(outcom vs. ground truth)。矩阵中的每一行代表实例的预测类别,每一列代表实例的真实类别。在混淆矩阵中,每一个实例可以划分为四种类型之一,True Positive\False Positive\False Negative\True Negetive(TP\FP\FN\TN),如图1所示。其中,Positive代表预测实例来自正类,Negetive代表预测实例来自负类;True代表预测正确,False代表预测错误。
图1:Confusion Matrix
由混淆矩阵可以计算一系列的评价指标,如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所示。
图2 ROC Curve
用ROC curve来表示分类器的performance很直观好用。可是,人们总是希望能有一个数值来标志分类器的好坏。于是Area Under roc Curve(AUC)就出现了。顾名思义,AUC的值就是处于ROC curve下方的那部分面积的大小。通常,AUC的值介于0.5到1.0之间,较大的AUC代表了较好的performance。
计算ROC curve的AUC值的代码可以在这找到。
相关文章推荐
- scikit-learn中评估分类器性能的度量,像混淆矩阵、ROC、AUC等
- 【scikit-learn】评估分类器性能的度量,像混淆矩阵、ROC、AUC等
- 分类器性能评估之混淆矩阵(1)
- 机器学习笔记十五:分类问题的性能度量(混淆矩阵,正确率,召回率,ROC,AUC)
- 分类器性能评估之ROC和AUC(2)
- 分类模型的性能评估——以SAS Logistic回归为例(1): 混淆矩阵
- <zz>信息检索中Recall, Precision等参数的理解
- <<Oracle数据库性能优化艺术(第五期)>> 第13周 性能视图和性能参数
- 分类模型的性能评估——以SAS Logistic回归为例(1): 混淆矩阵
- 在C#中调用另一个应用程序或命令行(.exe 带参数)<zz>
- [模式识别].(希腊)西奥多里蒂斯<第四版>笔记4之__非线性分类器
- 分类器评价参数之混淆矩阵
- R语言︱分类器的性能表现评价(混淆矩阵,准确率,召回率,F1,mAP、ROC曲线)
- [模式识别].(希腊)西奥多里蒂斯<第四版>笔记3之__线性分类器
- ffmpeg参数解释 <第三篇>
- <Context path="" docBase="reports" debug="0" reloadable="true"/> 中 debug 参数解释
- 分类模型的性能评估——以SAS Logistic回归为例(1): 混淆矩阵
- [模式识别].(希腊)西奥多里蒂斯<第四版>笔记2之__基于贝叶斯决策理论的分类器
- 评估分类器性能的度量,像混淆矩阵、ROC、AUC等
- 分类模型的性能评估——以SAS Logistic回归为例(1): 混淆矩阵