1.4 评估(evaluation)
1.4.1 曲线下面积(AUC(Area Under Curve))
AUC是指ROC曲线下的面积,而ROC计算需要了解混淆矩阵。
混淆矩阵:
如:预测肿瘤是否为良性。

1.4评估(evaluation) 
TP表示预测为良性,而实际也是良性的样例数; 
FN表示预测为恶性,而实际是良性的样例数;
FP表示预测为良性,而实际是恶性的样例数; 
TN表示预测为恶性,而实际也是恶性的样例数;
这四个数就形成了一个矩阵,称为混淆矩阵。定义两个变量:FPR = FP / (FP + TN),FPR表示在所有的恶性肿瘤中,被预测成良性的比例,称为伪阳性率;TPR = TP / (TP + FN),TPR表示在所有的良性肿瘤中,被预测成良性的比例,称为真阳性率。我们希望FPR越小越好,TPR越大越好。以这两个变量分别问横纵轴,可建立坐标系。

1.4评估(evaluation)
点(0,1),即FPR=0,TPR=1。FPR=0说明FP=0,也就是说,没有假正例。TPR=1说明,FN=0,也就是说没有假反例。这不就是最完美的情况吗?所有的预测都正确了。良性的肿瘤都预测为良性,恶性肿瘤都预测为恶性,分类百分之百正确。这也体现了FPR 与TPR的意义。就像前面说的我们本来就希望FPR越小越好,TPR越大越好。
点(1,0),即FPR=1,TPR=0。这个点与上面那个点形成对比,刚好相反。所以这是最糟糕的情况。所有的预测都预测错了。
点(0,0),即FPR=0,TPR=0。也就是FP=0,TP=0。所以这个点的意义是所有的样本都预测为恶性肿瘤。也就是说,无论给什么样本给我,我都无脑预测成恶性肿瘤就是了。
点(1,1),即FPR=1,TPR=1。显然,这个点跟点(0,0)是相反的,这个点的意义是将所有的样本都预测为良性肿瘤。
考察完这四个点,我们可以知道,如果一个点越接近左上角,那么说明模型的预测效果越好。如果能达到左上角(点(0,1)),那就是最完美的结果了。
ROC曲线:
我们知道,在二分类(0,1)的模型中,一般我们最后的输出是一个概率值,表示结果是1的概率。那么我们最后怎么决定输入的x是属于0或1呢?我们需要一个阈值,超过这个阈值则归类为1,低于这个阈值就归类为0。所以,不同的阈值会导致分类的结果不同,也就是混淆矩阵不一样了,FPR和TPR也就不一样了。所以当阈值从0开始慢慢移动到1的过程,就会形成很多对(FPR, TPR)的值,将它们画在坐标系上,就是所谓的ROC曲线了。
 1.4评估(evaluation)
其中,横轴表示预测为正例的概率,纵轴表示样本数。蓝色区域表示所有负例样本的概率分布,红色样本表示所有正例样本的概率分布。我们希望最好的分类效果,红色区域越接近1越好,蓝色区域越接近0越好。(如:阈值选择为0.5,我们可计算出准确率为90%)。
 1.4评估(evaluation)
上图中,蓝色区域与红色区域的重叠部分不多,所以可以看到ROC曲线距离左上角很近。
 1.4评估(evaluation)
但是,当蓝色区域与红色区域基本重叠时,ROC曲线就和接近y=x这条线了。
综上两个图,如果我们想要用ROC来评估分类器的分类质量,我们就可以通过计算AUC(ROC曲线下的面积)来评估了,这就是AUC的目的。
其实,AUC表示的是正例排在负例前面的概率。
 1.4评估(evaluation)
1.4.2 待定
评估包中含有如下五类未确定:二分指标(Binary Classification Metrics)、多类指标(Multiclass Metrics)、多标签指标(Multilable Metrics)、排名指标(Ranking Metrics)、回归指标(Regression Metrics)。根据源码内及官方API中解释该类依次为:二分类评估器、多类分类评估器、多标签分类评估器、排名算法评估器、回归评估器。

 

返回主目录(Spark MLlib算法思想总结)

 

1.4评估(evaluation)

相关文章: