python psi计算_KL散度,PSI,IV值之间的故事
原标题: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值之间的故事相关推荐
- python代码大全p-基于python实现计算两组数据P值
我们在做A/B试验评估的时候需要借助p_value,这篇文章记录如何利用python计算两组数据的显著性. 一.代码 # TTest.py # -*- coding: utf-8 -*- ''' # ...
- python+opencv 计算图片的感知hash值,来计算汉明距离,简单的找相似图片
感知哈希算法是一类算法的总称,包括aHash.pHash.dHash.顾名思义,感知哈希不是以严格的方式计算Hash值,而是以更加相对的方式计算哈希值,因为"相似"与否,就是一种相 ...
- python dataframe 计算上下两行的差值_用Python进行数据清洗!
导读:数据清洗是数据分析的必备环节,在进行分析过程中,会有很多不符合分析要求的数据,例如重复.错误.缺失.异常类数据. Python资源共享群:626017123 01 重复值处理 数据录入过程.数据 ...
- python matplotlib 计算并显示均值中值
python matplotlib 计算并显示均值 csv文件下载地址: 链接: https://pan.baidu.com/s/1Jm4Z8wlskkloGYeeVNkOXg 提取码: p25v & ...
- python calu_使用Python检查变量是否介于两个值之间
我在Python 3中计算一个人的BMI,需要检查BMI是否在两个值之间. 这是我的代码:def metricBMI(): text = str('placeholder') #Get height ...
- python计算相关性显著性p值_基于python实现计算两组数据P值
我们在做A/B试验评估的时候需要借助p_value,这篇文章记录如何利用python计算两组数据的显著性. 一.代码# TTest.py # -*- coding: utf-8 -*- ''' # C ...
- 分计算iv值_一文读懂评分卡的IV、KS、AUC、GINI指标
前言: 当一张评分卡构建完成时,筛选出一组特征生成了分数,我们会想要知道这个分数是否靠谱,即是否可以依赖这个分数将好坏客户区分开来,这个时候就需要评判评分卡有效性的指标. 测量评分卡好坏区分能力的指标 ...
- python评分卡1_woe与IV值
本系列分以下章节: python评分卡1_woe与IV值 python评分卡2_woe与IV分箱方法 python评分卡3_woe与IV分箱实现 python评分卡4_logistics原理与解法_s ...
- python123计算分段函数_Python 专题四 python 科学计算
一.目录 第1章 软件包的安装和介绍 1 11 Python简介 1 12 安装软件包 2 121 Python(x,y) 2 122 Enthought Python Distribution (E ...
最新文章
- WebSocket客户端连接不上和掉线的问题以及解决方案
- GMIS 2017嘉宾王小川:人工智能技术与应用思考
- 其他的AdapterView——Gallery
- php 数据接口,初识 php 接口
- 非直连方式下C语言程序与数据库的消息交互流程
- java搭建后台步骤_Java后台开发环境搭建 – 黄毅超的博客
- php框架laravel手册,Laravel 5 框架入门(一)
- 常用计算器就是计算机吗,计算器和计算机的区别?
- 利用数学软件Maxima求解电路的传递函数
- h5 神策埋点_数据分析(一)埋点
- 基于SSM的音乐视频网站的设计与实现
- mysql sql语句 参数化_C#参数化执行SQL语句,防止破绽攻击本文以MySql为例【20151108非查询操作】_mysql...
- 只要一下载大文件,电脑的联网客户端就掉线………………哈哈,已解决!!!
- 统计推断中的参数估计和假设检验
- 最经典的LOGO设计如何返璞归真
- 软件工程项目——校园二手交易系统——第一部分需求规格说明书
- 宝塔linux数据盘不够用如何处理,帝国cms使用Linux系统数据盘扩容后宝塔控制面板数据盘大小不变的解决方法...
- 仓库进销存管理软件哪个好?中小企业管理软件特点描述
- 百度上线英语语音输入功能识别准确率高得惊人
- 【Docker 运维】Docker迁移至新磁盘