IV与PSI的理解–深入浅出
一、IV理解
IV衡量的是某一个变量的信息量,是基于WOE来计算的,也可以说是基于KL散度的计算。用于变量个数较多场景下的变量初筛。
Iv取值范围 | 含义 |
---|---|
(0,0.02] | 无预测力 |
(0.02,0.1] | 较弱预测力 |
(0.1,+∞) | 预测力可以 |
理论上,是保留IV值大于0.1的变量进行筛选。
工业上,一般IV超过0.05可以通过初筛,根据变量iv实际情况可以灵活设置阈值。
-
WOE理解
woe是一种分箱手段,我理解的最主要有四个作用:
1)归一化:分箱且woe编码映射后的变量,可以将变量归一到近似尺度上;
2)引入非线性:对于逻辑回归这类线性模型,引入变量分箱可以增强模型的拟合能力,实现了按WOE排序的区间正样本比例呈单调趋势;
3)增强鲁棒性:分箱可以避免异常数据对模型的影响
4)可解释性:使变量具有可解释性 -
WOE计算
WOE=ln(Pxi / Qxi)
Pxi 表示正样本中某一箱的占比,Qxi表示负样本中某一箱的占比。 -
KL散度计算
KL散度(相对熵)通常用于衡量两个分布之间的差异。
KL(P | Q)=sum( Pxi * log(Pxi / Qxi) )
KL散度通常被称作KL距离,根据公式可以看出,KL散度满足距离的非负性和同一性,不满足对称性和直递性,因此不是严格意义上的“距离”。 -
IV计算
IV=sum( (Pxi – Qxi) * ln(Pxi / Qxi) )1)基于WOE的计算
IV=sum( (Pxi – Qxi) *woe)
公式中的 Pxi – Qxi 弥补了 woe的为负性
2)基于KL散度的理解
IV = sum( (Pxi – Qxi) * ln(Pxi / Qxi) )
= sum( Pxi * ln( Pxi / Qxi ) – Qxi * ln( Pxi / Qxi ) )
= sum(Pxi * ln( Pxi / Qxi ) + Qxi * ln( Qxi / Pxi ) )
= KL(P | Q)+KL(Q | P)
通过观察公式可以发现,IV部族了KL的不对称性
二. PSI理解
在第二part ,WOE计算中,我故意没有像其他博主一样写的很细节 ,以便让我们注意到,PSI 和IV的计算公式是一样的。不同点在于,PSI一般用于衡量两个样本分布的差异,如标签监控和模型监控来判断标签和模型的稳定性。IV一般用于判断正负样本中标签的信息量,如上面所说的标签筛选。
PSI取值范围 | 含义 |
---|---|
<0.1 | 模型\标签 稳定性很高 |
(0.1,0.2] | 一般 |
(0.2,+∞) | 建议修复 |
工业上,一般阈值可以根据具体情况灵活选择,一般到0.3都是ok的
- psi超出阈值时,排查点:
1)观察历史至今的统计值,如果是随着时间变化逐渐提高,可能是正常的;
2)如果是突然提高,要排查底层标签问题,查看哪个分段出现异常,是否出现促销活动或者底层表更新异常。
三. IV&PSI落地注意点
- 共同注意点
1)一般实际计算时,Pxi / Qxi部分可能出现分母为0的情况,导致程序报错,此时可以分子分母同时加一个极小值,如0.000001; - PSI注意点
1)psi 代码实现时,一般涉及到base样本和当前样本分箱统计结果 merge,要注意两份样本分箱的类型一致;
2)一般连续型字段,我们选择等频分箱方法而不是等距,避免某一箱为空;
3)分类型字段,通常直接value_counts进行统计,但是要注意可能会出现长尾分布,这种情况,可以将尾部类别进行合并;
4)计算时要注意保留base和当前样本的中间统计结果,便于排查问题。