本站原创文章,转载请说明来自《老饼讲解-机器学习》www.bbbdata.com
在评分卡上线后,一般用PSI指标来监控评分分布、特征分布是否与建模时一致
本文讲解PSI指标的作用、计算公式、计算例子、应用例子,以及PSI指标计算的代码实现
通过本文,可以快速了解什么是PSI指标,它有什么用,以及如何使用PSI指标监控评分卡线上的稳定性
本节介绍PSI是什么、有什么用,以及PSI的计算公式
什么是PSI
PSI的全称为人群稳定度指标(population stability index)
在评分卡上线后,一般用PSI来监控模型的稳定性,避免由于人群特征变迁而造成模型不适用
PSI的意义是评估线上的评分分布与建模时使用的样本的评分分布的差异
在评分卡上线后,模型面向的人群可能会变迁,如果发生变迁,可能会影响模型的准确性
因此,在评分卡上线后,一般会用PSI来监控线上人群评分分布、特征分布是否与建模时一致
PSI的计算公式
PSI(人群稳定度指标)的计算公式如下:
其中:
:线上(实际) 第组的占比
即线上观察到的第i组样本数/总样本数
:期望第组的占比(即建模时第i组的占比)
即建模时第i组样本数/总样本数
本节展示一个PSI指标的具体计算例子,并讲解PSI指标的应用方法
PSI的应用与计算实例
PSI值的意义是期望分布(建模时数据的分布)与实际分布(线上数据的分布) 的差异
在评分卡上线后,一般会分别监控模型各个变量的PSI、以及模型评分的PSI
以性别为例,它如下计算PSI:
如上表所示,线下的占比是固定的,它由建模样本统计所得
然后实时(例如每天计算一次)计算线上样本的占比,再根据公式就可以算得PSI
PSI反应了线上分布与建模分布的差异,它的值越大,代表差异越大
日常应用中,PSI指标与效果如下:
PSI < 0.1 :两分布差异小,一般不需作任何操作
0.1<=PSI < 0.25 :两分布有一定差异,需要引起注意,有必要需要采取一定策略
PSI >=0.25 :两分布差异明显,需要采取策略
总的来说,PSI的应用就是监控线上各个变量与分数的PSI值,当PSI过大时则预警,然后结合实际情况采取措施
本节展示评分卡的PSI指标计算的具体代码实现
PSI指标计算-代码实现
计算PSI指标是较为简单的,只需要按公式进行计算就可以了
具体代码实现如下:
"""
本代码用于展示如何计算PSI指标
本代码来自《老饼讲解-机器学习》www.bbbdata.com
"""
import numpy as np
E = np.array([0.5,0.45,0.05]) # 线下建模样本的分布
A = np.array([0.4,0.5,0.1]) # 线上建模样本的分布
psi = sum((A-E)*np.log(A/E)) # 根据公式计算PSI指标
print("\nPSI计算结果:",psi) # 打印PSI指标的结果
代码运行结果如下:
从结果可以看到,PSI为0.0622
它小于0.1,因此可认为线上线下人群并没有明显的变迁
好了,以上就是评分卡上线后的PSI监控指标的介绍了~
End