衡量分类器的性能指标
来源:互联网 发布:mac口红铁锈红 编辑:程序博客网 时间:2024/06/05 05:48
评价一个分类器的metric的确有不少。
error rate: 这个不讲了, 当然是错误率越低越好。
不过值得提到的就是可以通过一个被称为confusion matrix的办法直观展示classification error。 继而可以引出三个指标。
如下一个three class problem:
表示的意思是总共有8只猫, 6只狗, 13只兔子。 我们的分类器把这17只动物分成了7只猫(5个TP(true positive), 2个FP(false positive)), 8只狗(3个TP, 5个FP), 12个兔子(11个TP, 1个FP)。 所有分对了的样本都位于对角线处。 对于二类分类问题, 可以建立如下的confusion matrix:
其中False Positive 又称为type I error, False Negative 有称为Type II error。
有了上述的confusion matrix, 我们很容易计算出分类器的精度(precision), 召回率(recall), 以及综合二者优势的综合性指标Fmeasure。
注意, 高精度或者高的召回率很容易达到。 例如只要我们把所有的类都归为positive, 那么我们的召回率就是100%, 但是与此同时我们的精度却很差。 所以难点在于如何设计一个分类器, 使得两个指标均达到很高。
我们使用F measure综合去评价一个精度和召回率。 不难看出只有精度和召回率均达到很大的时候, 才会使得F指数达到很大。 也就是F指数越大, 我们的分类器的性能越好。
另一个衡量一个分类器的tool就是画出分类器的ROC曲线。 ROC 针对的是二元分类器。
ROC的横纵坐标分别是TPR(True positive rate), FPR(false positive rate)。
其中, TPR定义如下:
表示所有实际为是positve的样本被正确的判断为potive的样本数目比例。
FPR的定义如下:
表示在所有实际为negative的样本中, 被错误的分为postive的比例。
给定一个二元分类器模型, 和这个分类器的阈值, 我们从分类后的结果中就可以得到一个x = FPR, y = TPR的值。
从(0, 0)到(1, 1)这条对角线将空间分成两部分, 左上和右下区域。 在这条线的左上部分代表着一个号的分类结果(胜过随机分类), 右下的区域代表好于随机猜测了:
完美分类位于(1, 0), 表示true positive 为1, false postive 为0。 上图的虚对角线是随机猜测得到的结果。 又叫做无识别率曲线。
举个例子 100个positives, 100个negatives的训练样本。 一下是四种分类器(或者是同一分类器的四种阈值的设定):
上述四种结果在ROC空间中, 距离左上角越近的点的准确率越高,离右下角越近表明预测越不准。 不难看出三种分类器最好的是A。
B结果是随机猜测的结果了。
关于同一分类器的阈值设定。
对于同一个二元分类模型, 其阈值的设定或高或低, 每种阈值都会得到不同的FPR, TPR。 将同一个模型的每个阈值得到的(FPR, TPR)的结果画在ROC空间中, 就得到一个ROC曲线。不同的分类器, 阈值对ROC曲线形状的影响没规律可言。
对于同一个分类器之内, 阈值对分类器的影响是有一定的规律可循。
(1)阈值设为最高, 即所有样本都被分类为negative, 此时FP = 0, 所以FPR = 0%。 此时TP = 0, TPR = 0%。
所以, 我们知道阈值最高, 对应着ROC曲线的原点(0, 00)。
(2)阈值设定最低的时候, 所有的样本均分类为positive。 此时FPR = 100 %, TPR = 100 %, 位于ROC空间的位置是对角线(1, 1)。
ROC曲线下的面积AUC(area under curve)。
比较不同的分类模型的时候, 可以将每个模型的ROC曲线画出来,比较曲线下的面积作为模型优劣的指标。
有如下指标 , AUC越大, 正确率越高。 perfect classifier的AUC为1, 随机猜测的AUC为0.5.
为了画出ROC曲线, 我们需要阈值。 何为阈值? 阈值就是判断一个样本是否为postive或者negative的numeric score。 Naiive Bayes给你的阈值是一个概率。 logistic regression也是一个可以看成概率的值。 Adaboost和SVM首先计算出一个numeric value, 然后作为一个sign的输入,对于这两个分类器, 那个numeric value也是一个score。 我们每一个样本都可以计算出这样的一个numeric value, 我们通过把这些nemeric value从小到大进行排序, 然后开始从最小的值开始, 不断设置阈值, 从下到上。 一直进行下去, 高于阈值的预测为positive, 低于阈值的预测为negative. 每个样本的score对应的就是这个样本的prediction strength。
- 衡量分类器的性能指标
- webload备忘和一些衡量web应用的性能指标
- AUC与ROC - 衡量分类器的好坏
- AUC与ROC - 衡量分类器的好坏
- 分类器的常用性能指标的通俗释义
- 分类器性能指标错误率、正确率、召回率
- 【数据建模 分类器性能指标】性能测评
- 引用:在衡量web用程序的性能时,哪些性能指标是比较重要的?
- 在衡量web用程序的性能时,哪些性能指标是比较重要的?
- 淘宝长仁:JVM性能指标的理论极限和衡量方法(TaobaoJVM)
- 对于PRC和ROC曲线衡量分类器效果的思考
- 【机器学习】为什么要使用F1衡量分类器的性能
- 分类问题性能指标汇总
- 分类器性能指标之ROC曲线、AUC值
- 分类器性能指标之ROC曲线、AUC值
- 开发的超高频读写器模块性能指标
- 衡量搜索引擎的性能
- Bug的质量衡量
- 腾讯后台开发面试题
- Unicode(UTF-8, UTF-16)令人混淆的概念
- java API中提供的ArrayList的常用方法
- 模版-数学
- 第二章第十六题
- 衡量分类器的性能指标
- SVM概述
- 【黑马程序员】---- Android常用权限整理
- 蓝桥杯(水题)---密码
- iOS 获取IP地址
- Linux Android 反编译
- 字符串循环左移
- UITableView 的cell重叠问题
- Web应用程序结构