数据建模:个人信用分是如何计算出来的?

文 | 傅一平

源 | 与数据同行

无论是金融、互联网企业亦或运营商,都在基于多年积累的大数据搭建个人征信评分体系,不仅用于自身,也在提供给其他征信机构做为个人信用评估标准。

那么,个人的信用分到底是如何计算出来的呢?

笔者相信不同的信用分有不同的计算方法,无论是FICO评分、芝麻信用亦或其它信用分,这些评分既可以很简单,也可以很复杂,使用的建模方法各不同,但也总是会遵循一些基本的原则,这里笔者就信用分计算的一些关键技术作简要介绍,希望于你有益。

一、业务分析

我们在构建信用评分的时候,首先当然要定义何谓信用高,何谓信用低的用户,这是建模的起点,银行会基于用户的还贷历史来确定高低信用用户,但如果是第三方企业,则需要基于自身的业务特点定义出类似的高低信用用户,即正负样本,比如运营商可能会基于通信欠费来确定高低信用用户的样本,当然这也是远远不够的,需要从更多的途径获取,比如可以免费获取法院公示的老赖名单等。

二、变量初选

身份特征、消费能力、信用历史、行为偏好及人脉关系是当前业界评估信用的五个方面,很多信用评分体系都基于此而来,当然,不同行业由于数据不同,因此形成的具体明细指标肯定也有明显的差异,比如针对身份特征,可能选择的具体指标包括婚姻、年龄、职业、性别等等,诸如运营商可以有几十个指标来表征身份特征,五个方面的涉及的具体指标更是多达上百个,因此,关键的下一步就是如何删选合适的变量。

三、特征删选

很多新手喜欢用越多的变量来建模,以为多多益善,其实不然,变量筛选的目在于去除对于模型预测准确提升无效甚至影响模型预测效果的无用变量, 比如两个相关变量的同时存在往往会导致准确性下降。

特征的选择有很多方式,比如IV值的判断,这里以随机森林来示例,随机森林算法能够输出每个变量对模型预测的重要性大小,重要性越大代表该变量对于提升模型预测准确度所做贡献就越大,反之如果重要度值为负,就代表该变量加入会降低模型预测准确度,所以在该步骤直接选择基于模型输出结果来完成变量筛选,以下是示例:

数据建模:个人信用分是如何计算出来的?

经过随机森林初步筛选,和变量预测探索分析,最终五个维度共输入XX个变量分别进入模型训练。

四、算法选择

一般会采用logistic分类算法,在输入数据形式的标准与线性回归基本一致。在选择逻辑回归时,注意要进行数据预处理,最主要是两点:

1、 离散变量哑变量处理。离散变量不适用于线性分类模型中,建议转化为0,1类变量,例如用户行业字段,存在8个类别(学生、工人、公务员…),经过哑变量转化处理的话,该字段转化为8个变量:是否学生,是否工人,是否公务员……)。

2、 变量线性化处理。对于线性分类算法,指标与目标变量之间呈现线性关系,对于变量的预测效果会更好,但实际数据往往都是非线性表示,因此为提升模型预测效果,需要针对连续型且非单调性变量进行WOE处理,用WOE值替换指标值,以实现数据之间的线性关系。WOE计算公式为 WOE=ln(%good/%bad),其中%good表示违约用户构成。%bad表示好样本用户构成。以资金字段为例:

数据建模:个人信用分是如何计算出来的?

接下来就是用逻辑回归进行模型训练,从而获得概率值。

五、评分卡转换

1、评分卡刻度

那么如何将概率值转化为评分呢,其实怎么算都可以,这里采用评分卡转换的方式,具体网上都有详细解释,这里简要讲下,违约与正常比率被定义为一个记录被划分为违约的估计概率与被划分为正常的估计概率之间的比率,将估计违约概率用p表示,估计正常概率为1-p。因此可定义发生比:

Odds=p/(1-p)

评分卡设定的分值刻度是可以将分值表示为比率(Odds)的线性表达式来定义。如下所示:

Score=A-B*log(Odds)

其中:A,B都为常数。其中A成为补偿分数,B称为刻度,它们可以通过两个已知或者假设的分值代入计算得到,一是在某个特定比率设定特定的预期分值,二是指定比率翻番的分数(PDO)。

首先,设定比率y的特定点的分值为P0,然后,比率为2y的点的分值为P0+PDO,代入上式可以得到如下两个等式:

P0=A-B*log(y)

P0+PDO=A-B*log(2y)

解上述两方程中的常数A和B,可以得到:

B=PDO/log(2)

A=P0+B*log(y)

在这里可以借鉴标准FICO信用分与违约率的定义,比如B=58,A=437,计算分数公式则为:

Score=437-58*log(Odds)

最终可以得到该模型的评分卡刻度情况最终结果,如下表所示:

数据建模:个人信用分是如何计算出来的?

2、分值分配

对于logistic回归算法,odds也可以表示为:

log(Odds)=B0+B1*X1+B2*X2+…+BnXn

由此可得:

Score=437-58*(B0+B1*X1+B2*X2+…+BnXn)

由于建模过程所有变量都有使用WOE转换,因此可以将分值分配到每个变量取值上去,以下是示例:

数据建模:个人信用分是如何计算出来的?

这样,我们就得到了用户的信用各个变量取值的信用分值。

六、确定五个维度的权重

用户的信用分总分是基于五个大维度综合权重计算获得的,当前每个大维度信用分(该维度涉及很多变量)已经可以通过前面计算得到,总信用分表达式如下:

Total_score=a1*score1+ a2*score2+ a3*score3+ a4*score4+ a5*score5。

网上公开的芝麻信用的五个大维度的最终权值是信用历史(35%)、行为偏好(20%)、履约能力(25%)、身份特质(15%)及人脉关系(5%),各类信用评分体系权重肯定是不同的,因为有不同的约束条件,需要计算得到a1,a2,a3,a4,a5。

七、模型效果评估

信用评分模型主要从准确性,区分度等方面来进行评估。

1、准确性:感受性曲线下面积(ROC_AUC)是一个从整体上评价模型准确性的指标,是感受性曲线(ROC)与横轴之间的面积。相比于其他评价指标,感受性曲线(ROC)具有一定的稳定性,它不会因为正负样本分布的变化而产生不同的曲线。感受性曲线(ROC)通过真阳率(True Positive Rate, TPR)和假阳率(False Positive Rate, FPR)两个指标进行绘制,感受性曲线(ROC)示意如图1所示,感受性曲线下面积(ROC_AUC)取值范围为[0,1],取值越大,代表模型整体准确性越好。

数据建模:个人信用分是如何计算出来的?

2、区分度:区分度指标(KS)是度量具体模型下正常样本和违约样本分布的最大差距,金融领域评估信用模型的一个核心方法,首先按照样本的信用分数或预测违约率从小到大进行排序,然后计算每一个分数或违约率下好坏样本的累计占比,正常和违约样本的累计占比差值的最大值即为区分度指标(KS),区分度指标(KS)的示意如图所示,区分度指标(KS)小于0.2代表模型准确性差,超过0.75则代表模型准确性高。

数据建模:个人信用分是如何计算出来的?

数据建模:个人信用分是如何计算出来的?

可以看到,信用分的计算过程借助了一般的建模方法,也有其自身的特点,信用分要建的好,还有很多的工作要做:

一是为了让信用分具备可解释性,需要量化每个变量每个区间的信用分值分配,比如发现芝麻信用分下降了,肯定想知道个中原因吧。

二是信用分计算出来后,往往会出现不可预期的结果,比如不符合正态分布等等,往往需要根据业务的需要再进行调整。

三是信用分的运营也存在不少挑战,包括多长时间计算一次,如何确保不要出现大的波动,新变量的引入影响等等。

这都对信用分建模提出了新的挑战。

猜你喜欢

转载自blog.csdn.net/hualalalalali/article/details/88638269