嗨,周末愉快,小编周末本打算去北戴河玩,结果老弟要来北京,就放弃了,结果小编还被老弟放了鸽子,所以无奈之下只得玩手机。
小编周五写了一篇 单变量的PSI代码,写得略有些繁琐,东先生最近在学sas代码,作为程序员出身的他看了我写的sas代码,实在忍无可忍,于是提出了很多意见,于是按照他的建议改了很多,本篇文章包括python代码和sas代码,以及分数分布。小编以前不会用sas画图,这篇也当做是sas作图的首篇文章吧。
至于PSI这个业务指标,就无需再细致讲了,下面大概讲一下。
公式: psi = sum((实际占比-预期占比)*ln(实际占比/预期占比)),和 IV的计算公式一样,和交叉熵的作用类似。
举个例子解释下,比如训练一个提升树模型,预测时候会有个概率输出p。你测试集上的输出设定为p1吧,将它从小到大排序后20等分,如0-0.05,0.05-0.1,......。
现在用这个模型去对新的样本进行预测,预测结果叫p2,按p1的区间也划分为20等分。
实际占比就是p2上在各区间的用户占比,预期占比就是p1上各区间的用户占比。
意义就是如果模型跟稳定,那么p1和p2上各区间的用户应该是相近的,占比不会变动很大,也就是预测出来的概率不会差距很大。
至于为什么分20箱呢,其实是和卡方有关。分成20箱的阈值是0.25.
一般认为psi小于0.1时候模型稳定性很高,0.1-0.25一般,大于0.25模型稳定性差,建议重做。
首先是SAS代码:
接下来是python代码
最后还是要说下哈,使用代码的时候请说明是小编写的哈,小编很辛苦的,谢谢各位读者啦!
领取专属 10元无门槛券
私享最新 技术干货