评分卡|分类学习器的评估

信用评分卡主要有三种(A卡、B卡、C卡):
- A卡:申请评分卡,侧重贷前,在客户获取期,建立信用风险评分,预测客户带来违约风险的概率大小;
- B卡:行为评分卡,侧重贷中,在客户申请处理期,建立申请风险评分模型,预测客户开户后一定时期内违约拖欠的风险概率,有效排除了信用不良客户和非目标客户的申请;
- C卡:催收评分卡,侧重贷后,在帐户管理期,建立催收评分模型,对逾期帐户预测催收策略反应的概率,从而采取相应的催收措施。
简单来讲,评分卡用分数来预测客户的好坏。当一个评分卡已经构建完成,并且有一组个人分数和其对应的好坏状态的数据时,我们想知道所构建的评分卡是否可靠?可靠程度如何?而这取决于如何去定义这个“好”字。一般有三种角度可以来评估:
- 评分卡分类划分的准确程度,如错误率、准确率、召回率、F1
- 评分卡的判别能力,评估评分卡将好人和坏人分离开的程度,如KS统计量、ROC曲线、GINI系数
- 评分卡概率预测的校准精度
令s是分类学习器预测的结果,可以是好人坏人这样的类别,也可以是一个概率值,大于多少才进一步判定为坏人,还可以是一个信用评分,大于多少才进一步判定为好人。至于是哪种跟我们选用的模型有关,不过目前逻辑回归和随机森林等都支持输出概率值或者信用评分。
从测度论的角度来看,模型评估的是预测变量和实际变量之间的相似度或距离。在这块有很多的指标,有统计检验的,有信息论的,也有概率论的,每个指标都有其优劣和适用场景。
因为是分类器,所以实际分类变量比较简单,肯定是因子型的离散变量,在评分卡中其分布就是pG 和pB。而预测变量的类型就不确定,不过没关系,我们统一考虑它的密度函数f(s)和分布函数F(s)。
当预测变量的阈值选好后,即每一个样本都被预测了,这时候预测变量也变成了与实际类别变量相同的离散变量,则预测类别变量和实际类别变量的混淆矩阵为:
实际坏人 | 实际好人 | |
---|---|---|
预测坏人 | TP(真正例) | FP(假反例) |
预测好人 | FN(假正例) | TN(真反例) |
要注意的是,此时预测变量虽然是离散的,但我们仍然可以用概率来表示混淆矩阵。设样本数为N,f(s|G)和f(s|B)分别为好人和坏人的条件密度函数,nG和nB分别表示总体中好人和坏人的数量,则上述的混淆矩阵可以表示为:
实际坏人 | 实际好人 | |
---|---|---|
预测坏人 | p(s ∈ 坏人|B) nB | p(s ∈ 坏人|G) nG |
预测好人 | p(s ∈ 好人|B) nB | p(s ∈ 好人|G) nG |
总体 | nB | nG |
接下来我们就可以定义和分析各种距离/指标啦。
1、分类学习器的性能度量
性能度量反映了任务需求,在对比不同的模型能力时,使用不同的性能度量往往会导致不同的评判结果;这意味者模型的“好坏”是相对的,什么样的模型是好的,不仅取决于算法和数据,还决定于任务需求。
在预测任务中,给定样例集

3.1 马氏距离
马氏量比较简单,它就是两个概率密度函数的众数之差/标准差
这其中常用的有:
-
卡方散度(f(t)=(t-1)2):
KS统计量
KS值反映的判别能力没有一个确定的标准,经验上KS统计量至少要等于0.4才反应一个较好的判别能力。
KS统计量的缺点在于它描述的是在“最优区分分数”下的情形,但商业决策中需要一个相关或合适的临界分数。我们只能理解成,实际临界分数处的条件分布的距离比KS统计量小,换句话说,KS统计量仅是好坏距离或区分度的上限。
3.5 ROC曲线
信用评分中最常用的判别能力的度量工具是ROC(Receiver Operating Characteristic)曲线和与之很相似的CAP(Cumulative Accuracy profile)曲线。这些曲线下方的区域引出了两种判别能力的度量:Gini系数和准确率AR。
ROC曲线是好人条件分数相对于坏人条件分数的累计分布的图形。如下图,x轴代表ROC曲线
注:在很多机器学习的书中,ROC曲线是通过混淆矩阵来定义的,本质上与上述定义是等价的。给定一个判定分数s,当分数大于s时,模型判定为好人,当分数小于s*时,模型判定为坏人。这样真正率(正样本预测为正的比例,此时坏人是正样本)TPR=F(s|B),假正率(负样本预测为正)FPR=F(s|G)。且用概率表示的混淆矩阵如下:
ROC曲线下的面积(Area under the ROC curve,简称AUROC或者AUC)可评价判别能力的大小。一般评分卡的AUROC通常介于0.5~1之间,且面积越大,判别能力越好。
AUROC
我们更倾向于用范围0到1来标准化测量结果,0代表完全随机,1代表完美随机能力。此时我们可以将AUROC转换成Gini系数,其等于ROC曲线与对角线之间面积的两倍。
GINI系数
每个分数在ROC曲线上的点(F(s|G),F(s|B)),该点垂直投射到对角线上的点的横纵坐标相等。所以曲线上这点的垂直距离变成了|F(s|G)-F(s|B)|。很明显,KS统计量就是这个最大距离的最大值,而Gini系数是这个距离在整个曲线上积分的两倍,因此GINI<2KS。
另外可以证明GINI>KS,如果进一步放缩GINI系数,还可以证明GINI<2KS-(KS)2,于是我们有:
GINI系数估计不等式
注:ROC曲线的绘制
在画ROC曲线和计算Gini系数时,分值大小并不重要,真正重要的是这些人分数的相对排序。将分数按升序排列,得到BGBBGGBGGG·······。依次将前n个样本预测为B即可得到ROC曲线。
3.6 CAP曲线
在市场营销文献中,有一个和ROC曲线很类似的方法叫做累积准确性(cumulative accuracy profile,CAP),或者成为提升曲线(lift curve)。与ROC曲线不同,它的横纵坐标不是F(s|G)和F(s|B),而是F(s)和F(s|B)。所以横坐标表示的是总体被拒绝的比例,纵坐标表示好人被拒绝的比例。
完美判别评分卡的CAP曲线会经过B(pB,1)点,其中 pB 是总体中坏人的比例。
就像ROC曲线和Gini系数一样,曲线到对角线的面积与完美判别到随机判别面积的比例可以整合CAP曲线包含的信息。这个比例成为准确率(accuracy rate,AR)
可以证明AR=GINI,但两个曲线并不一样。ROC曲线不需要指导原始总体的分布,而只看评分卡本身。但CAP曲线包含了总体的信息,随总体变化而变化。
注:可用数据集:
UCI澳大利亚信用卡数据、UCI德国信用卡数据、LendingClub数据集操盘过程见文章:评分卡实践(先挖坑,待续)
参考文献
[1]. 机器学习之分类性能度量指标 : ROC曲线、AUC值、正确率、召回率
[2]. 消费信用模型:定价、利润与组合
[3]. 机器学习
[4]. 统计学习方法
[5]. 评分卡模型构建介绍
[6]. 信用评分的简单小结(ROC,IV,WOE)
[7]. 利用LendingClub数据建模
[8]. 知乎:分布的相似度(距离)用什么模型比较好?
[9] 概率分布之间的距离度量以及python实现