原创|手把手教你构建评分卡模型

a654d479cf159a5759b53f0b490efd15.png

作者:胡赟豪‍‍‍‍
本文约2800字,建议阅读5分钟
本文介绍了构建评分卡模型。‍‍‍

一、背景

在各种机器学习、深度学习模型快速发展的当下,评分卡模型作为一种可解释机器学习模型,仍然在金融、营销等领域被广泛使用。这一模型通过构建一组基于输入变量的评分规则,能够直观地对样本进行评分,非常易于理解和操作。举一个金融信用风险评分卡的例子,要判断一笔贷款能够被按时偿还的风险大小,可以设置这样一个评分卡:

是否有车

0

10

是否有房

0

30

是否已婚

0

10

年龄

[0,25)

0

[25,40)

5

[40~55)

10

[55,+∞)

5

学历

初中及以下

0

高中

5

本科

10

硕士及以上

20

月均收入        

0~3000

0

3000~6000

5

6000~10000

10

10000~20000

15

20000+

20

这个评分卡的得分范围是[0,100],分数越高,违约的风险就越小。对于一个有房有车,有着本科学历和15000元月收入的30岁已婚申请者,按照评分卡可以计算其得分:10+30+10+5+10+15=80分,据此风险评估人员可以快速地判断出该申请者的信用风险较小。

评分卡的强可解释性一方面使其能够快速给出结论,另一方面也能给出原因。通过查看每个评分项的得分,我们也可以清楚看到申请者在哪些项目扣了多少分。在一些其他场景下我们如果要给予被评分人建议,也可以清楚地看到哪一项提升到什么程度,对应能够增加多少得分。

那么评分卡为什么最后是选用这些变量?这些分数又是怎么计算出来的呢?接下来我们一起看看评分卡的构建过程。

二、数据清洗

在上面的例子中,模型的目标是申请者是否会按时偿还,特征则是每个申请者的个人信息。在收集好样本数据之后,首先需要对数据进行清洗,包括异常值、缺失值处理等。

异常值可以基于规则或者离群值检测来发现,例如发现年龄为负数、收入高于平均值的X%(X可以自行调整)等情况的样本,可以予以剔除,避免干扰后续的模型构建。   

缺失值则可以用平均数、相似样本填充等方法进行填补,也可以直接保留缺失状态,在后续的建模中作为单独的一个分箱。

三、分箱

评分卡模型的一大特点是对每个输入变量的不同分箱分别进行打分。例如在上面例子中,我们注意到每个输入变量都是离散的。即使是像收入、年龄这样的连续型变量,也是先进行分箱(分成不同的取值区间)后再进行打分,因此模型最后的得分也是离散的。

分箱的常见方法包括:

(1)等距分箱

将变量可能取值的区间分为k个相同大小的小区间,例如连续区间[0,3]拆分为[0,1)和[1,2)、[2,3]三个分箱。

(2)等频分箱

将变量可能取值的区间分为k个区间(可以不同大小),每个区间内的样本频率相同,例如[0,3]拆分为[0,1)和[1,3]两个区间,但样本中在两个区间内的取值频率相同。

(3)最优分箱

最优分箱方法是有监督的,需要样本的标签信息,使用类似于决策树的方法,通过计算信息熵增益等指标来决定拆分点。

四、WOE编码

分箱之后输入变量变成一系列取值为0或1的变量分箱,接下来我们需要对它们进行有监督的WOE(证据权重,weight of evidence)编码,将“1”转换成其他更加有预测能力的数字。   

假设样本标签中违约为1,按时偿还为0,则对于变量分箱i,定义以下变量:

608f5225db558708993d57b4e8bf92bb.jpeg为分箱i中违约客户占所有样本中违约客户的比例

e145c046ef63b3efab9998a1a2660319.jpeg为分箱i中按时偿还客户占所有样本中违约客户的比例

cf206e1fd7b5bab105343e36898773fb.jpeg为分箱i中违约客户人数

9b6c99e3b316cd3b6730ec3b00611348.jpeg为分箱i中按时偿还的客户人数

dbc868f11fe70f55b719b7dcfff77758.jpeg为所有样本中违约客户人数

ae970748c8079e6b347d948c93d12aeb.jpeg为所有样本中按时偿还的客户人数

则分箱i的WOE取值为

674df5b21d6efaa4d2762a147db52c7f.jpeg 

通过公式可以看出,分箱中违约客户比例越高,WOE值越大,理论上8052ccb8b8bc7ba420e010f000ecc40b.jpeg 。当分箱i中违约客户占比高于总体时WOE>0,小于总体时WOE<0;违约客户的占比和总体一致时,WOE值为0,分箱没有预测能力

9cfb190b1c67bed1d3bb34143e74df2c.jpeg

从上面的式子可以看出,WOE值能够反映分箱对目标预测的贡献情况,在分箱的分类信息“1”的基础上增加该分箱的权重信息,因此WOE被称为“证据权重”。注意在计算时,即使是缺失值组成的分箱也可以算出一个WOE分数。

但是WOE的计算为什么是这个形式?一种解释是为了更加适配后续的logistic建模,从以下推导中可以看出,WOE分数和预测目标的对数几率的变化近似线性相关。   

Logistic模型公式:67104700fd765347d9b55e613e6beaa4.jpeg,其中p为客户违约概率,f1ca41bebf566421aed14ceb2de9315c.jpeg为模型的参数向量

8179672e67d76978ee8d80f3c62c2ca4.jpeg ,其中773fc9edfa1319ea5b78c09199b83871.jpeg为分箱i中客户违约概率,d07f67aa607104bea18552f0bec5dac6.jpeg为总体的违约对数几率。

五、变量选择

变量选择的目标主要有两个,一个是筛选出预测能力强的变量,另一个是处理多重共线性问题。

评分卡模型中常用IV值(信息价值,information value)来表示变量的预测能力,变量的IV值是其所有分箱的IV值之和:

d9827f36038a0eeb560cbcce66fecb72.jpeg

由于公式中的两个项同向,故IV≥0,IV值越大,变量对目标的预测能力越强。

多重共线性则可以结合变量间相关系数、VIF值等进行判断,在多个共线性较高的变量中,可以优先保留预测能力较高的变量。

六、模型训练与评估

训练前首先对样本进行样本集和测试集的拆分。评分卡模型本质上是一个二分类预测模型,使用logistic模型来估计参数,接下来只需要将筛选后的变量的分箱WOE值输入到模型中,完成模型的训练即可。在测试集上可以计算模型的AUC、KS等指标,来评估模型效果。   

七、评分卡转换

至此还剩下最后一个问题:怎样将模型的结果转化为文章开头那样的评分卡里的分数?

例子中评分卡的分数实际上表达的是违约的对数几率大小(因为希望分数大小和违约几率负相关所以加入负号):f7f9f1afca4f93ea93e1533cf2695a81.jpeg

假设向量x取某个值时,违约几率为odds0,则此时得分为358ecdbf55b55efba4c421a664b7dc6e.jpeg;再假设几率翻倍时,有330391f9fbf8cb72692893f6992f9fc8.jpeg,其中PDO表示违约几率翻倍时分数的变动幅度。可以将以上两个式子联成一个方程组,在人工设定基础分数s0、基础几率odds0和PDO的基础上即可解出A、B大小。

在式子673476d561a6002664e491fc88c62d89.jpeg中代入A、B后,就可以将各个变量的分箱得分计算出来,生成评分卡了。注意此时评分卡得分的阈值范围很可能并不是0~100这样比较规整的区间,但可以通过分数的映射再进行一些调整得到。

编辑:王菁

作者简介

胡赟豪,硕士毕业于清华大学经济管理学院,现从事于互联网数据科学相关工作,主要技术探索方向为机器学习及其在商业中的应用。

数据派研究部介绍

数据派研究部成立于2017年初,以兴趣为核心划分多个组别,各组既遵循研究部整体的知识分享实践项目规划,又各具特色:

算法模型组:积极组队参加kaggle等比赛,原创手把手教系列文章;

调研分析组:通过专访等方式调研大数据的应用,探索数据产品之美;

系统平台组:追踪大数据&人工智能系统平台技术前沿,对话专家;

自然语言处理组:重于实践,积极参加比赛及策划各类文本分析项目;

制造业大数据组:秉工业强国之梦,产学研政结合,挖掘数据价值;

数据可视化组:将信息与艺术融合,探索数据之美,学用可视化讲故事;

网络爬虫组:爬取网络信息,配合其他各组开发创意项目。

点击文末“阅读原文”,报名数据派研究部志愿者,总有一组适合你~

转载须知

如需转载,请在开篇显著位置注明作者和出处(转自:数据派THUID:DatapiTHU),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。

未经许可的转载以及改编者,我们将依法追究其法律责任。

43ec8d376aff66533b56ef976234a72e.png点击“阅读原文”加入组织~

  • 21
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值