风险模型 - 概率校准

概率校准原因

在概率模型搭建过程中,由于抽样与正则化的原因,导致模型输出的概率值明显偏离真实的概率值。这时候我们称这些模型直接输出的概率值是定序值,而非定距数值,可比较大小,但其绝对值并无太多含义。那么如何将模型输出的prob校准到真实的逾期概率呢。使得经过校准后的概率变成逾期概率的意义。

案例

如下表所示,我们利用模型将

pred_probpositive_nttlpositive_ratio
0.1145500.0255
0.15175140.0331
0.16205370.0372
0.17255250.0476
0.19375920.0625
0.2505720.0874
0.24515990.0851
0.26725170.1392
0.28925510.1670
0.3995200.1904

说明:
我们将模型应用在一个数据集:
pred_prob为模型输出的predict probability
在数据集中预测概率为pred_prob的总数为ttl,其中有positive_n正例,正例占比positive_ratio = positive_n/ttl

如上表,模型输出的pred_prob = 0.1 对应真实逾期率 0.0255,0.15 ~ 0.0331, 0.16 ~ 0.0372。
模型解决了数据的排序问题【随着预测概率的增加,真实概率也在增加】,但从这个例子我们可以看出,模型预测与真实值之间出现了很大的差异。

那么我们如何将模型预测的概率f(x) 校准到 Real_Proba,数学上我们只需要找到一个f(x) ~ Real_Proba的映射关系,也就是说找到一个g(x),其中g(x)中的x为f(x),也就是说利用f(x) ~ Real_Proba的对应关系,拟合一个函数g(x),将f(x)校准到Real_Proba。

现实案例中,我们并不知道观测的真实逾期率,但是我们有客户正例的标签label,通常我们的数据组织形式如下:

观测编号label模型输出的预测概率
100.1
210.1
300.1
400.1
500.1
610.15
700.15
800.15
910.15

我们需要利用模型的预测值 与 label进行模型搭建。

校准方法

来自http://xinsong.github.io/2014/03/27/probability_calibration/
platt
isotonic regression
待更新

校准评价指标

Brier分数

观测编号label模型输出的预测概率校准后概率
100.10.08
210.10.08
300.10.08
400.10.08
500.10.08
610.150.12
700.150.12
800.150.12
910.150.12

校准函数公式

(公式1.1) B r i e r _ s c o r e = 1 n ∑ i = 1 n ( f i ( x ) − ϕ i ) 2 Brier\_score =\frac{1}{n} \sum_{i=1}^n(f_i(x)-\phi_i)^2 \tag{公式1.1} Brier_score=n1i=1n(fi(x)ϕi)2(1.1)
其中n为观测个数,fi(x)为第i个观测的预测值,φi为第i个观测对应的真实发生的label(0/1).
Brier_score越低说明预测值与真实值越接近,预测概率越准确。

案例

观测编号label模型预测概率校准后概率
100.10.0033
210.150.0039
300.160.0040
410.170.0041
500.190.0044
610.20.0045
710.240.0051
810.260.0054
900.280.0057
1010.30.0061

B r i e r _ s c o r e ( 校 准 后 概 率 ) = 1 10 ∑ i = 1 n ( 校 准 后 概 率 − l a b e l ) 2 = 0.5942254 Brier\_score (校准后概率)=\frac{1}{10} \sum_{i=1}^n(校准后概率-label)^2 = 0.5942254 Brier_score=101i=1n(label)2=0.5942254
B r i e r _ s c o r e ( 模 型 预 测 概 率 ) = 1 10 ∑ i = 1 n ( 模 型 预 测 概 率 − l a b e l ) 2 = 0.38167 Brier\_score (模型预测概率)=\frac{1}{10} \sum_{i=1}^n(模型预测概率-label)^2 = 0.38167 Brier_score=101i=1n(label)2=0.38167

从这个案例可以看出,模型校准后,Brier Score在增大,所以不校准模型结果更优。

在说概率校准前,先说下Brier分数,因为它是衡量概率校准的一个参数(该案例中的校准概率并未真实计算,只是用来举例)。

校准需要什么

应用场景一:将模型输出结果校准到真实逾期率

  1. 模型f(x)是已知的。
  2. 其次我们需要一个校准数据集,这个校准集需要包含label和f(x)的打分。
  3. 利用f(x)~label构建g(x),用g(f(x))作为校准后的概率输出。

应用场景二:将不同模型校准到一个校准集,进行比较。
有两个模型:
M1 label定义:未来6个还款周期出现90+逾期
M2 label定义:未来3个还款周期出现60+逾期

这种情况下我们需要什么:

  1. 一个带label的校准数据集,label定义为1期30+
  2. M1,M2分别在校准数据集合上的打分S1,S2
  3. 分别针对S1~label,S2 ~ label 构建校准函数g1(x),g2(x)
  4. g1(M1(x)),g2(M2(x))就是可以比较的了,如针对同一个样本一期30+label为0,通过 g1(M1(x))打分为0.1,g2(M2(x))打分为0.14,那么针对这个样本来看M1要优于M2。当然这个比较较为随机没有统计意义,可以通过比较同一样本集 g1(M1(x))与g2(M2(x))的Brier Score,来查看哪个模型效果更优。
  5. 当然也可以利用比较集,分别利用g1(M1(x))与g2(M2(x))的输出的概率,映射到一个等距报表中,查看每一档占比,去看哪个模型更优。
    如下表所示,校准后M1与M2在各档的频数分布,如果第一档为优质客户,则M1的效果要优于M2,它将更多的人的推到了第一档;但如果1,2档都是优质客户,这时M2(40+40)要优于M1(50+20)
编号概率区间M1模型个数M2模型个数
1[0,0.1]5040
2(0.1,0.2]2040
3(0.2,0.3]1510
4(0.3,0.4]89
5(0.4,0.5]76
6(0.5,0.6]65
7(0.6,0.7]54
8(0.7,0.8]43
9(0.8,0.9]32
10(0.9,1]21
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值