换个角度理解PSI(2)——从KL散度到PSI的奇幻之旅

1,738 阅读4分钟


相对熵

上次我们讲到IV和PSI的公式可以用一个通用表达式表示:

并且用熵的概念简要的说明了为什么对数项可以表明信息量的大小。 对于通用公式的后半部分,没有展开来讲,今天我们这里入手,其实:

对后一项进行变换

从这部分入手,有一种更好的解释,熟悉熵家族的同学可能已经看出来了,每一项其实都是相对熵(也被称为KL散度),PSI其实是分布互相的相对熵之和

非对称度量指标:KL散度

KL散度又称相对熵、信息散度。KL散度主要是用来衡量两个概率分布之间的差异。

假设是关于的两个概率分布,则的KL散度为

KL散度具有以下性质

  1. KL散度具有非对称性,KL散度尽管被用来度量两个分布的相似度或者说距离,但是KL散度本身不是距离。
  2. KL散度同样不满足三角不等式
  3. KL散度具有非负性,因为对数函数是凸函数,所以KL散度的值为非负数。

这里简单明确下,本质上,KL散度度量的是两者之间的信息损失,而不是两者之间的距离。

距离的定义,在传统的教材里面距离度量的定义就是需要满足四个条件:非负性,对称性,同一性 ,和三角不等式,这样的定义主要是从经验出发,而KL散度不满足对称性和三角不等式。

我们知道KL散度和距离度量指标最大的区别在于它是非对称度量,既然是非对称的,这里我们解决一下有什么不一样

(1)首先,公式涉及了两个分布,其中要传递的信息来自分布:;信息传递的方式依赖的分布:;分布中可能性越大的事件,对的影响也越大。如果想让尽可能的小,就要优先关注事件中的常见事件,并确保它在事件中也不是特别罕见。因为一旦事件x在分布罕见,意味着我们没有优化传递x的成本,传递x需要的成本会很大。当这套传递方式在用来传递分布时,传递常见事件需要的成本会很大,整体成本也就会很大。

(2)我们记熵;交叉熵,我们会发现;,我们发现第二项和分布无关,所以最小化KL散度就是最小化交叉熵;但是反过来,,两项均和相关,最小化KL散度为最小化的交叉熵和的熵的差。

这里理解起来有点绕,但是从公式直观上我们也能看出来,是不等于的。

对称度量:JS散度

为了解决KL散度的不对称性(数学家们的强迫症,确实在实际中使用中更加方便,有更好的性质),数学家发明了一种KL变种,JS散度:

取值为0到1之间

对称度量:PSI

同样的,我们看到:

PSI可以看做是解决KL散度非对称性的一个对称性度量指标,用于度量分布之间的差异。

KL散度 python实现

从公式可以发现,P 和 Q 中元素的个数不用相等,只需要两个分布中的离散元素一致。 因此计算不管是计算KL散度还是计算PSI,都需要对变量进行离散化,保证两个分布的离散元素一致。

import numpy as np
import scipy.stats
p=np.asarray([0.65,0.25,0.07,0.03])
q=np.array([0.6,0.25,0.1,0.05])
def KL_divergence(p,q):
    return scipy.stats.entropy(p, q)
print(KL_divergence(p,q)) # 0.011735745199107783
print(KL_divergence(q,p)) # 0.013183150978050884

JS散度 python实现

import numpy as np
import scipy.stats
p=np.asarray([0.65,0.25,0.07,0.03])
q=np.array([0.6,0.25,0.1,0.05])
q2=np.array([0.1,0.2,0.3,0.4])
def JS_divergence(p,q):
    M=(p+q)/2
    return 0.5*scipy.stats.entropy(p, M)+0.5*scipy.stats.entropy(q, M)
print(JS_divergence(p,q))  # 0.003093977084273652
print(JS_divergence(p,q2)) # 0.24719159952098618
print(JS_divergence(p,p)) # 0.0

PSI python实现

这个我们留到下期再讲(还有hive实现psi计算的彩蛋,欢迎持续关注)

参考资料

《数据化风控》 单良 / 乔杨 《统计学习方法》 李航 https://www.jiqizhixin.com/articles/0224 https://blog.csdn.net/a358463121/article/details/82903957 https://blog.csdn.net/blmoistawinde/article/details/84329103

本文使用 mdnice 排版