原标题:KL散度,PSI,IV值之间的故事

KL散度,PSI,IV值之间的故事

01

KL散度

KL散度也称KL距离或相对熵。是一个从信息论、熵的角度量化距离的量,但跟一般的距离有不一样的地方。

距离在数学上的定义需满足以下条件:

非负性

同一性

对称性

直递性

KL散度只满足前面两条性质,不是真正意义上的距离,只能

用来评价两分布的差异。第一条的意思是说KL散度>=0,第二条说p与p的KL散度为0,即两个同一分布KL散度为0。但KL散度不满足对称性,即KL(p,q)不等于KL (q,p)。KL散度还用于衡量信息增益,衡量修改了从先验分布q到后验分布p的信息之后带来的信息增益,所以不具有对称性。如果要求对称的KL,例如p,q的对称KL,可以求KL(p,q)和KL(q,p)的平均值。

先看KL散度的公式:

假设有两个分布A和分布B,出现0,1的概率为:

A(0)=3/4,A(1)=1/4

B(0)=1/6,B(1)=5/6

我们就可以计算A和B之间的KL散度为:

=3/4*log((3/4)/(1/6))+1/4*log((1/4)/(5/6))

KL散度的python计算代码:

def KL(P,Q):

KLlist=[P[i]*log(P[i]/Q[i]) for I in range(len(P))]

KL=sum(KLlist)

Return KL

对称KL散度计算代码:

def symmetricKL(P,Q):

return (KL(P,Q)+KL(Q,P))/2

2

相对熵

再看一个概念相对熵。

H(pi)是一个真实分布的期望,所以最小化DKL就是最小化

H(pi,qi):

而H(pi,qi)就是交叉熵。交叉熵也是机器学习中损失函数的一种,用来衡量真实分布与我们拟合出来的分布的差异。

3

PSI

衡量分布与分布之间的差异,我们会联想到建立评分卡模型用到的一个衡量模型稳定性的指标PSI,定义为:

展开为:

下一步,

看到这里,我们就能发现PSI其实可以表示为第一项实际分布A与预期分布E之间的KL散度与第二项预期分布E与实际分布A之间的KL散度的和。实际上是A和E的KL散度的一个对称化的处理。

4

IV值

再考虑下评分卡模型常用的衡量变量预测力的指标IV值,设pi为在该变量分组下的好样本的分布,qi为坏样本的分布,得iv值的计算公式为:

展开为:

最后得到一个变量的IV值等于KL(pi,qi)+KL(qi,pi),即说明IV值衡量的是在该变量的分组下的一个好坏样本分布的差异,差异越大说明区分能力越大。返回搜狐,查看更多

责任编辑:

python psi计算_KL散度,PSI,IV值之间的故事相关推荐

  1. python代码大全p-基于python实现计算两组数据P值

    我们在做A/B试验评估的时候需要借助p_value,这篇文章记录如何利用python计算两组数据的显著性. 一.代码 # TTest.py # -*- coding: utf-8 -*- ''' # ...

  2. python+opencv 计算图片的感知hash值,来计算汉明距离,简单的找相似图片

    感知哈希算法是一类算法的总称,包括aHash.pHash.dHash.顾名思义,感知哈希不是以严格的方式计算Hash值,而是以更加相对的方式计算哈希值,因为"相似"与否,就是一种相 ...

  3. python dataframe 计算上下两行的差值_用Python进行数据清洗!

    导读:数据清洗是数据分析的必备环节,在进行分析过程中,会有很多不符合分析要求的数据,例如重复.错误.缺失.异常类数据. Python资源共享群:626017123 01 重复值处理 数据录入过程.数据 ...

  4. python matplotlib 计算并显示均值中值

    python matplotlib 计算并显示均值 csv文件下载地址: 链接: https://pan.baidu.com/s/1Jm4Z8wlskkloGYeeVNkOXg 提取码: p25v & ...

  5. python calu_使用Python检查变量是否介于两个值之间

    我在Python 3中计算一个人的BMI,需要检查BMI是否在两个值之间. 这是我的代码:def metricBMI(): text = str('placeholder') #Get height ...

  6. python计算相关性显著性p值_基于python实现计算两组数据P值

    我们在做A/B试验评估的时候需要借助p_value,这篇文章记录如何利用python计算两组数据的显著性. 一.代码# TTest.py # -*- coding: utf-8 -*- ''' # C ...

  7. 分计算iv值_一文读懂评分卡的IV、KS、AUC、GINI指标

    前言: 当一张评分卡构建完成时,筛选出一组特征生成了分数,我们会想要知道这个分数是否靠谱,即是否可以依赖这个分数将好坏客户区分开来,这个时候就需要评判评分卡有效性的指标. 测量评分卡好坏区分能力的指标 ...

  8. python评分卡1_woe与IV值

    本系列分以下章节: python评分卡1_woe与IV值 python评分卡2_woe与IV分箱方法 python评分卡3_woe与IV分箱实现 python评分卡4_logistics原理与解法_s ...

  9. python123计算分段函数_Python 专题四 python 科学计算

    一.目录 第1章 软件包的安装和介绍 1 11 Python简介 1 12 安装软件包 2 121 Python(x,y) 2 122 Enthought Python Distribution (E ...

最新文章

  1. WebSocket客户端连接不上和掉线的问题以及解决方案
  2. GMIS 2017嘉宾王小川:人工智能技术与应用思考
  3. 其他的AdapterView——Gallery
  4. php 数据接口,初识 php 接口
  5. 非直连方式下C语言程序与数据库的消息交互流程
  6. java搭建后台步骤_Java后台开发环境搭建 – 黄毅超的博客
  7. php框架laravel手册,Laravel 5 框架入门(一)
  8. 常用计算器就是计算机吗,计算器和计算机的区别?
  9. 利用数学软件Maxima求解电路的传递函数
  10. h5 神策埋点_数据分析(一)埋点
  11. 基于SSM的音乐视频网站的设计与实现
  12. mysql sql语句 参数化_C#参数化执行SQL语句,防止破绽攻击本文以MySql为例【20151108非查询操作】_mysql...
  13. 只要一下载大文件,电脑的联网客户端就掉线………………哈哈,已解决!!!
  14. 统计推断中的参数估计和假设检验
  15. 最经典的LOGO设计如何返璞归真
  16. 软件工程项目——校园二手交易系统——第一部分需求规格说明书
  17. 宝塔linux数据盘不够用如何处理,帝国cms使用Linux系统数据盘扩容后宝塔控制面板数据盘大小不变的解决方法...
  18. 仓库进销存管理软件哪个好?中小企业管理软件特点描述
  19. 百度上线英语语音输入功能识别准确率高得惊人
  20. 【Docker 运维】Docker迁移至新磁盘

热门文章

  1. Linux shell脚本数值计算个人心得
  2. 网站安全--又一种防盗链的措施!
  3. LDAP之LDAP服务器搭建
  4. Nagios监控部署(四)--被监控主机配置
  5. Oracle体系结构中的各种名称
  6. FastDFS 集群配置(转载)
  7. python学习手册笔记——22.模块代码编写基础
  8. 齐二TK6916/20/26/32系列数控落地铣镗床简介8
  9. 想知道数据表的用户或系统异动时间
  10. 8.6 GOF设计模式四: 策略模式… Strategy Pattern