新理解:我认为auc,和ks异曲同工。auc是根据预测概率(由大到小排序)作为阈值,可分割为不多于样本个数n个阈值。即可得到n个recall和precision把这些点连成线即为roc曲线。auc即为roc下的面积。那个点最接近左上角即为最好的阈值。1和0作阈值分别得到(0,0)和(1,1)点。样本点只是曲线上的点,理论上无穷大,不可能描绘完。横:假阳率,纵:recall。n个点为相应阈值分割得到的recall和precision.
ks可认为也是根据预测概率(由大到小排序)作为阈值,横轴为0到1的阈值,纵为n个recall和precision的点,分别绘制两条曲线,他们之间的绝对差的最大值即为ks值,横轴即为最好的阈值。
https://blog.csdn.net/u013421629/article/details/78217498
我认为这是不对的。如最大值可能是某个分区都是好的或坏的,这样的值没有意义。只有recall-假阳率绝对差最大才有实际意义。
前言
http://my.oschina.net/liangtee/blog/340317
引子
假设有下面两个分类器,哪个好?(样本中有A类样本90个,B 类样本10个。)
| 、 | A类样本 | B类样本 | 分类精度 |
|---|---|---|---|
| 分类器C1 | A*90(100%) | A*10(0%) | 90% |
| 分类器C2 | A*70 + B*20 (78%) | A*5 + B*5 (50%) | 75% |
分类器C1把所有的测试样本都分成了A类,分类器C2把A类的90个样本分对了70个,B类的10个样本分对了5个。
则C1的分类精度为 90%,C2的分类精度为75%,但直觉上,我们感觉C2更有用些。但是依照正确率来衡量的话,那么肯定C1的效果好一点。那么这和我们认为的是不一致的。也就是说,有些时候,仅仅依靠正确率是不妥当的。
我们还需要一个评价指标,能客观反映对正样本、负样本综合预测的能力,还要考虑消除样本倾斜的影响(其实就是归一化之类的思想,实际中很重要,比如pv总是远远大于click),这就是auc指标能解决的问题。
ROC
我们定义一个变量:
看图也就可以知道,TPR表示的就是预测正确且实际分类为正的数量 与 所有正样本的数量的比例。--实际的正样本中,正确预测的比例是多少?
FPR表示的是预测错误且实际分类为负的数量 与所有负样本数量的比例。 --实际的负样本当中,错误预测的比例是多少?
可以代入到上面的两个分类器当中,可以得到下面的表格(分类器C1):
| 、 | 预测A | 预测B | 合计 |
|---|---|---|---|
| 实际A | 90 | 0 | 90 |
| 实际B | 10 | 0 | 10 |
TPR = FPR = 1.0.
分类器C2:
| 、 | 预测A | 预测B | 合计 |
|---|---|---|---|
| 实际A | 70 | 20 | 90 |
| 实际B | 5 | 5 | 10 |
TPR = 0.78, FPR = 0.5
上图中蓝色表示C1分类器,绿色表示C2分类器。可以知道,这个时候绿色的点比较靠近左上角,可以看做是分类效果较好。所以评估标准改为离左上角近的是好的分类器(考虑了正负样本的综合分类能力)。
一连串这样的点构成了一条曲线,该曲线就是ROC曲线。而ROC曲线下的面积就是AUC(Area under the curve of ROC)。这就是AUC指标的由来。
如何画ROC曲线
对于一个特定的分类器和测试数据集,显然只能得到一个分类结果,即一组FPR和TPR结果,而要得到一个曲线,我们实际上需要一系列FPR和TPR的值才能得到这样的曲线,这又是如何得到的呢?
可以通过分类器的一个重要功能“概率输出”,即表示分类器认为某个样本具有多大的概率属于正样本(或负样本),来动态调整一个样本是否属于正负样本(还记得当时阿里比赛的时候有一个表示被判定为正样本的概率的列么?)
当我们将阈值设置为1和0时,分别可以得到ROC曲线上的(0,0)和(1,1)两个点。将这些(FPR,TPR)对连接起来,就得到了ROC曲线。当阈值取值越多,ROC曲线越平滑。
--在阿里比赛的时候还以为ROC是没用的!!!!真的是有眼无珠啊!!!还是有疑惑的是:如何根据ROC来判定结果的好换呢?看哪个分类器更加接近左上角吧。同时,可以根据ROC来确定划定正样本的概率边界选择在哪里比较合适!!!原来是这样!!!!!!!!!
为什么使用ROC
在上图中,(a)和(c)为ROC曲线,(b)和(d)为Precision-Recall曲线。(a)和(b)展示的是分类其在原始测试集(正负样本分布平衡)的结果,(c)和(d)是将测试集中负样本的数量增加到原来的10倍后,分类器的结果。可以明显的看出,ROC曲线基本保持原貌,而Precision-Recall曲线则变化较大。