分类模型的评价指标的图像记忆
最近在复习机器学习相关的知识,发现分类模型的评价指标--混淆矩阵,ROC,AUC的记忆比较复杂,主要是TP(实际为正预测为正),FP(实际为负但预测为正),TN(实际为负预测为负),FN(实际为正但预测为负),以及roc矩阵的坐标计算,纵轴:TPR=正例分对的概率 = TP/(TP+FN),横轴:FPR=负例分错的概率 = FP/(FP+TN),采取死记硬背的方式总是记不了几天,因此这两天加强了下对这几个指标的理解并采取图像记忆的方式进行记忆,顺便分析下auc和ks的关系。
混淆矩阵
首先来理解下混淆矩阵,当训练完一个二分类模型后,模型在测试集上的效果可以表示如下图一,我们可以发现混淆矩阵4个指标就是每个位置的面积大小:
图一 测试集效果于混淆矩阵的关系图中正样本被分为1,2两部分,负样本被分为3,4两部分。模型的分类线向右倾斜。因此从面积上来看,我们可以看到1/(1+2)是要大于3/(3+4)。这说明比起负样本,模型更乐于讲正样本预测为正,这说明模型的效果好于随便猜,可以看出,斜率越小,模型分类效果越好。图二给出了对模型来说效果差,效果等于随便猜,效果好的3种情况:
图二 测试集预测分布与模型效果ROC曲线
可以看出上面的图中红线的倾斜程度可以表示模型的分类效果,但是同时我们还要考虑红线与左右边界的距离,而这个距离取决于我们在分类时更偏袒正样本还是负样本,也就是模型在分类的时候的阈值选取。取极限情况,假设我们将所有样本都分类为负样本,即判断为正样本的阈值取1,这条红线就应该在最左边,假设我们将所有样本都分类为正样本,即判断为正样本的阈值取1,这条红线就应该在最右边。如下图三所示:
图三 算法阈值改变图可以发现,阈值改变的过程很类似画roc曲线的过程,roc曲线的横纵坐标表示为1/(1+2)和3/(3+4)。我们可以画出roc曲线与与分类红线的关系如图四:
图四 roc曲线形成过程绘制那么为什么roc曲线要采用1/(1+2),3/(3+4)作为横纵坐标来绘制roc曲线呢?我理解的一个原因是,这样选择的指标不受正负样本分布影响,如下图所示,负样本放缩,3和4等比例放缩,则3/(3+4)的值不变。因此不影响roc:
图五 负样本放大对于混淆矩阵的影响AUC 和KS指标
Auc和ks都是由roc曲线衍生出来的评价指标,其中auc为roc下与横坐标围成的面积,由于roc是一个曲线,当两个模型进行比较时,你很难以说两条roc曲线哪条更加好,除非一条曲线正好完全在另一条曲线上方,因此通常使用auc这个数值指标来评估模型。同时由于roc曲线不受正负样本分布影响,auc值也不受影响。
Ks曲线也是采用1/(1+2)和3/(3+4)两个指标画出的,区别是ks曲线的横坐标为阈值,如下图六,图中我们选择红线最大处,最大处的值就是ks值。
图六 ks曲线学过线性规划的同学就会发现,实际上ks值可以在ROC曲线上找到,如下图七,在roc曲线上做斜率为1的切线,则切线的截距就是ks值
图七 利用roc曲线获取ks值同时我们还能近似估算ks与auc值的大小关系,如下图八,图中S(△OAK)=1/2*KS*1,由于CD*OB=OK*OA,所以S(△OBC)=S(△OAK),而auc=S(曲线OCB与OB围成的形状)+1/2,即auc略大于S(△OBC)+1/2。结论,auc略大于1/2*ks+1/2。
图八 auc与ks的数值关系总结
利用图像的方式,大致记住了各个指标的物理意义。几个辅助记忆的关键点,为什么roc曲线坐标的选择能使其不受样本分布不平衡影响,如何利用roc曲线获取ks值,现在应该短时间不会忘记了。事实上,在ks图上是否能找到auc的值呢,答案也是可以的,同时也能得出一样的auc和ks的关系,这里就不展开了。