针对不平衡数据的模型评判
当得到一个模型时的评价标准。 确定该模型分数的阈值。
根据AUC ROC KS值去判断 和确定该模型的好坏和阈值。
AUC值:
AUC是一个基于ROC图的面积。一般是一个上凸形状。面积越接近1,则说明模型判别效果越好。如下图:
其横坐标是FPR-假正率。其纵坐标是TPR-真正率。
FPR=FP/(FP+TN) 即 认为是正例的 实际却是负例 / 所有负例
TPR=TP/(TP+FN) 即 认为是正例的 实际也是正例 /所有正例
假象中 若需要实现上凸的结果。则需要 横坐标较小时,纵坐标较大。
我们一般让模型输出一个分数,在授信阶段的这个分数,我们业界一般称为A卡分,即 Application Score Card,申请评分卡。在贷中环节有B卡分,即 Behavior Score Card。在贷后催收环节,还有C卡分,Collection Score Card。
一般而言A卡分,分数越小用户越差,分数越大用户越好。这也和大多数的征信分意义一致,如芝麻分、百维分、华策分。
假设A卡分的取值是0-100分。那么设拒绝阈值为X。当X=20时,会拒绝一部分用户,这部分用户里面可能是有真正坏的人,也有好用户。
如以cita为阈值时,TP和FP是拒绝的用户,而TP则是真正坏的人,FP是好人。那一般好模型会希望如上图好坏用户的分布比例。先是坏用户比例高,然后是好用户比例高。
由于TPR和FPR是以总体的正样本数和负样本数单独计算的,所以如果AUC大,可以回答:不论正负样本的分布比例,这个模型的区分能力总体上是很好的!
在风控模型里面,一般认为 坏人是正例,是需要我们找出来的。 而好用户是负例。
那么当X=20时,如果模型有效,那么真正坏的比例应该高,而好用户比例低。
那么应该 TPR 大,FPR小。为了实现上凸的效果,需要FPR为横坐标,TPR为纵坐标。
ROC曲线是使阈值X遍历所有,预测的正样本和负样本在不断变化,直到覆盖了总体,此时TPR=1 TPR=1。
AUC值的一个意义是,反应模型对正负样本的排序能力强弱。理论上,当模型把所有正样本排在负样本之前时,auc=1,为理论最大值。
但是AUC本身不提供一个最优阈值,只是表示这个模型分数对正负样本有一定的区分能力。
具体需要 确定最优阈值时,我们选用了 KS值,来进行确定。
KS值一般取值范围为【0,1】,KS值越大,表示模型能将正负样本区分开来的程度越大。但并非越大越好,尤其是在征信模型中。
征信模型中,最期望得到的信用分数分布是正态分布。如果KS过大,如超过0.8,就可以认为正负样本分得过开,这可能表明信用分数和样本分布不呈正态分布,可能是极端分布,如U字形,像这种分数的使用,需要谨慎。
KS值=max(TPR-FPR) ,此时阈值则为最佳阈值,可用模型和这阈值进行用户区分。
KS值得计算,可以是分组计算,也可以是逐个逐个数据进行计算,此时仍然可以算出TPR和FPR,进而算出KS值。
============================
还有一些不大常用的评价指标
precision 准确率=TP/(TP+FP) 即拒绝的用户中真正坏的用户/拒绝的用户数 【这个指标,会随着测试集的正负比例的改变而改变】
TPR=recall = 召回率=TP/(TP+FN) 即 拒绝且真正坏的用户/ 全部坏的用户
specificity =1-FPR=1-FP/(FP+TN)=TN/(FP+TN)
TPR 和 FPR都是条件概率,不受样本情况影响。
对于恶劣分类情况,即【宁可杀错一千,不过放过一个】,那需要在设定合理的 precision下,提高recall。找到这个情况下的阈值。