基于专家经验制作评分卡
(实战篇)
Author:黄权
风险概括
根据业务场景及面向客群,梳理业务流程,用几个大类囊括个人的信用风险,比
如目前我们针对烟草场景,可用下面 5 个大类去囊括
⚫ 基本信息评估
⚫ 偿债能力评估
⚫ 经营状况评估
⚫ 稳定性评估
⚫ 信用履约历史
再举一个例子,支付宝的芝麻分:
芝麻信用分是结合用户的 5 大个人信息(行为偏好、身份特征、履约能力、人脉
关系和信用历史),利用电脑多维度的因子和数据,并结合复杂的模型,综合计算
得出的分数。1、行为偏好,是指大部分的互联网行为,以及及时缴纳水电费、
爱心捐赠、给家人添置物品等。2、身份特征,是指通过学历学籍、职业资格、
消费记录等信息,判断用户在网上的身份信息是否真实和全面。3、履约能力,
是指是否具有足够的财富和能力去偿还债务或履行约定。4、人脉关系,是指用
户的家人、朋友是否有良好的信用记录等。5、信用历史,是指用户的个人信用
卡、车贷房贷、预订酒店甚至打车守不守信等。
芝麻信用分有五个等级:
1、信用极好:700-950 为一等级
2、信用优秀:650-700 为二等级
3、信用良好:600-650 为三等级
4、信用中等:550-600 为四等级
5、信用较差:350-550 为五等级
实质上支付宝芝麻分制作上与评分卡制作大体一致,不过其使用场景不一样,风
险大类就会有所区别。但是支付宝芝麻分拥有客户的海量数据,是基于数据驱动
去制作评分卡的,和我们说的基于专家经验制做评分卡还是有些区别
变量挑选
针对不同风险大类利用专家经验挑选变量,变量一般分为通用变量及特有变量,
比如,年龄、性别等这些就是通用变量,用在什么场景都可以,但是像近一年月
均烟草进货额、进项销项等这些变量就是特有变量,只有在相关场景的背景下,
才会有这些变量。
以烟草客户为例,以下为专家经验根据大类挑选的变量,在做变量挑选的时候一
定要细心且耐心,由于是专家经验,数据为冷启动(也就是没有存储任何业务数
据),尽量只挑选对违约有影响的变量。
变量
类别
基本信息评估
信用履约历史
偿债能力评估
年龄
性别
信用年限
3 个月多头数
信用卡总额度
信用卡额度使用率
近 1 年月均交易金额
经营状况评估
稳定性评估
专家经验排序变量对违约率影响强弱及逻辑(后面造数据时候 IV 与下面排序呈
递减关系),部分截图如下:
20190802评分项影响强弱.xlsx
造数据
首先要拍好坏客户表格出来,部门截图如下
拍分箱(假如有少量数据可以给指引,利用卡方分箱分箱借鉴再调整)
拍好坏客户在该箱下的占比(假如有少量数据可以观察客户分布)
计算 WOE
计算 IV
------------------
IV 可用来表示一个变量的预测能力。其作用如下:
一帮来说,变量 IV 小于 0.02 就不要带入模型了,但是 IV>1.2 过高,这个变量
可能存在问题。
造数据的 Python 代码如下:
输入:
20190802造数据 .xlsx
输出:
修改数据,使之符合现实情境
我们运用 python 造出来的数据可能不符合现实逻辑,比如一个客户贷款总额为
20w,未结清贷款为 60w;还有历史逾期次数为 0、贷款最大逾期状态 M3+等,
这些都是不符合现实逻辑的,而我们造的数据中只是混洗了一遍,这一步修改数
据需要我们自己手动去修改。
数据转换为 WOE 编码
为什么需要编码?因为上面输出全为字符串类型,Logistic 回归模型自变量为连
续型,而为什么选择 WOE 编码,而不是其他哑变量编码、Bad Rate 编码,是
20190802python数据.xlsx
因为我们模型主要是衡量好坏客户的,WOE 编码比其他编码更合适。
Python 代码如下:
输入:
输出:
20190802WOE数据.xlsx
挑选变量
IV 挑选
这里面由于是专家想出来的变量,就无须进行 IV 挑选了。(一般来说,根据业务,
比如 IV<0.01 就可以把变量剔除,0.01 是自己定的),假如现实造的变量 IV 确
实小于 0.01,可能分箱没有分好,或者在拍数据分布的时候没拍好,一般来说在
造数据的时候我们已经在观察变量 IV 了,这是造数据的时候,IV 如下(部分截
图):
变量相关性性
由于数据为自己造的,只经过混洗过程,显然每个变量与变量之间相关性是非常
低的.
Python 代码如下:
输入:(20190802WOE 数据)