PSI用于度量两个分布之间的差异,主要用于检查客群的变化/模型的稳定性。本质上也就是某种交叉熵。
内容以这个帖子中的数据为例,贡献两个小函数
函数1# 将一列转为百分比 import numpy as np def transform_list2pct(some_list): arr1 = np.array(some_list) return arr1 / arr1.sum()函数2
# 计算两次分布的PSI (<0.1 ok, <0.25 review, else update) import numpy as np def kpi_psi_2list(a_list , b_list): arr_a = np.array(a_list) arr_b = np.array(b_list) tem_res = (arr_a-arr_b)*np.log(arr_a/arr_b) return tem_res.sum()使用
使用例子的数据计算(本身已经归一化了,函数支持输入原始的频数统计)
kpi_psi_2list([0.7233,0.1133,0.0367,0.0200,0.1067], [0.5514,0.0986,0.0743,0.0600,0.2157]) 0.19587683021838628
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)