承接上文《有案例有代码,详细模型分数》开头
承接上文《有案例有代码,具体模型分数》本文开头告诉你们怎么更合理的向顾客展示信用评估结果。把模型预测值映射到一个分数区间,例如350~950,分数越高信用越好。
很自然的我们就走到了这个最佳选择2023盈亏平衡点计算实例,至于分数为何定义在这个区间,我个人理解一是为了跟国际上主流的个人信用评分区间接轨;二是为了拉开用户之间的分数差别。
#
4.怎么映射分数
#
最简略最容易想起的是选用尺度变化,将模型预测结果线性的映射到350~950,于是找到对应的分数X,告诉用户分数低于X就可以领到借贷。
#
等一下!假如过段时间模型更换了如何办? #
模型换了,继而变化,分数X也跟著变了。这时都会有一部份用户疯狂的呼叫客服问“为啥我的评分变高了,反倒不能借钱?” #
同时每天更换模型,后台、前端都须要进行相应的逻辑、页面更改,每天模型公布还要多个环节协作完成,是一种高耦合的工作方法。 #
然后你快点召集团队成员讨论解决方案,有人提出一个又简略又好用的方案:分段尺度变换,将固定为680分(本文假设的)之后分成两段作尺度变换。
小结分段尺度变换的特点: #
模型切换用户无感。无论模型的怎样调整,用户感知不到差异,只要分数超出680都可以成功申请到借贷;时延了模型团队与开发团队。也就是说当模型人员测量好评分后,后台开发只须要设定680分通过,自此之后无论模型人员如何更换模型,后台开发都不用再从新更改代码。 #
“`
#
=table.()[‘’]
#这儿用几倍标准差确定上下界依据经验设定,是为了防止值并且分数过度集中在某个范围
upper=min([‘mean’]+5*[‘std’],1) #
lower=max([‘mean’]–3*[‘std’],0) #
def(,upper,lower,):
#
“””
将模型打分结果尺度变换到350~950的分数区间 #
:param:float,模型打分
:paramupper:模型打分下界
#
:paramlower:模型打分上界
:param:680分位置对应的模型打分 #
::
#
“”” #
if>upper:
350
elif>: #
680–int((680–350)*(–)/(upper–))
#
elif==:
#
680 #
elif>lower:
#
680+int((–)*(950–680)/(–lower))
#
else: #
950 #
二、客群分层下的分数映射1.老用户分层 #
敏锐的你发觉,随着用户的复贷次数增多,原有盈亏平衡点的估算方法会促使拉新费用被估算了多次(用户复贷几次就多估算几次)。
这也就引出了用户分层的一种场景:辨别新老顾客,分别建模,分别估算盈亏平衡点。
传统的评分卡中A卡B卡还有异曲同工之处: #
综合剖析新老用户分别建模的特性: #
模型更精确。老顾客建模引进了历史还贷行为、交易行为,并且模型更精确。老用户的费用更低。拉新费用归属于边际费用,当新用户转换为老用户后,每多一次复贷就会将拉新费用摊平。这么就可以将拉新费用算在新用户上,老用户的费用得以增加,对逾期率有更大的容忍度;增加复贷率,增加赢利。修正老顾客的盈亏平衡点,可以减少老顾客的通过率,进而增加复贷率,增加赢利。
#
这么我们再从新估算以下老用户的盈亏平衡点:
#
带入公式估算得到盈亏平衡点pd=0.0217,在代码中求得=0.047。
同理,辅以分段尺度变换方式可以将模型结果逐步映射到信用分数空间,这儿不再赘言。 #
此刻的你又开始探讨怎样做大做强。为了吸引更多用户,留住优质客源,你跑断了腿找到一个新的资本方,甘愿以更低的资金费用给你提供资金来源。 #
然后你总算可以上线一款新产品:更低的利率给更好的你。
至此业务步入了多产品轨道。 #
2.用户品质分层以匹配不同利率产品
#
不仅根据新老顾客性质分层,还可以根据用户品质来界定用户。 #
将老用户分为优质用户和次优用户,这么做的目的是为优质用户匹配优质产品2023盈亏平衡点计算实例,更低利率或更高额度。 #
根据这个思路就可以将用户分为以下四个层次: #
只以A、B类用户例子,同理带入公式估算盈亏平衡点:
#
得到: #
A类用户盈亏平衡点pd=0.01467
B类用户盈亏平衡点pd=0.02167 #
现实业务中可以将ABCD四类用户评级结果直接反馈给用户,例如我们常听到的白银会员、钻石会员,本质上是类似的;
#
也可以根据分段尺度变换的思路将分数界定多段,比如: #
代码可以参考上面二分段尺度变换的代码,提高对应的判定分支即可。
#
逐渐而至的问题也就出现了:
假如产品越来越丰富,变换额度、利率,所须要估算的盈亏平衡点越来越多,那如何办呢?再使用分段尺度变换这些简略粗鲁的方式就变得越来越蠢笨了,也提高了出错的几率。当多个模型共同工作或切换备用模型时,怎样保证分数尺度一致?这儿尺度一致的意思是,两个模型分数相同时对应的逾期率是否一致。三、多产品、多客群、多模型下数映射的形成——分数测量 #
为了才能更好的进行风险定价,业务部委希望模型给出的分数才能确切的反映出真实的信用风险等级。
这一过程称为分数测量(Score)。
#
也就是说,我们最终的目标是:构建信用评估分数与预测逾期率的函数关系。 #
这儿介绍一种常用的分数测量方式,通过该办法,可以由分数精准的估算出预测逾期率,反之亦可。 #
1.推行Odds与分数的函数关系
#
熟悉业务的同学会晓得,建模时逾期样本十分少,更多的是信用良好的样本。 #
成因我觉得有两点:
#
现实中好人是大多数的,这点不多解释。模型常年筛选的作用,一般我们早已得到还贷结果的样本是早已通过上一轮模型的一批样本,坏用户早已被上一轮模型过滤掉大部份了。
然而,逾期率与用户人数是符合幂律分布的。也就是说随着逾期率的下降,用户人数呈指数增长。 #
因而在设计Odds与分数的函数关系时,对Odds取了一个log,再结合简略的线性多项式,加入截距A和斜率B进行线性拟合:
也称作百分比Odds,常拿来评估风险。(ps:熟悉赌场的同学会对百分比很熟悉),同时有
由公式看下来分数与log(Odds)呈线性关系,表示分数每变化多少,逾期率会番翻。
要算出系数A、B的话,还要从业务视角先预设两个前提条件:
我们设定
时,
应逾期率是0.0196,当Odds按双倍上下浮动时,分值对应变动100分。 #
这儿设定的值也是为了演示估算,实际业务中应当按照业务状况拟定合理的取值。
#
求解多项式组估算得到A,B #
后面这个公式就是分数与逾期率的函数关系,我们可以逐步把分数、Odds、逾期率的对照关系估算下来: #
仔细观察我们会发觉,随着逾期率PD越来越小,Odds虽然近似等于逾期率,这就更便于业务团队进行风险定价。
#
2.构建模型结果与Odds的函数关系 #
从模型结果到Odds是一个线性回归过程。 #
至此,我们就完成了一个标准的分数校正。
四、总结 #
我们回顾一下,随着产品种类,模型总数的丰富,分数映射渐渐有了更多的要求以适应业务的需求和团队协作的高效。 #
小结一下每位阶段的异同点:
#