机器学习中距离/相似度的度量方法总结——闵科夫斯基距离、杰卡德距离、余弦相似度、Pearson相似系数、相对熵(KL散度)、Hellinger距离

量化两个分布的相似度/距离可以用于:

1.聚类性能的度量(内部指标): 当没有一个参考模型做对比的时候,可以采用如下内部指标衡量聚类结果。
2.量化模型(系统)稳定性: 例如当某一系统两个时段收集的样本集分别为X和Y,假设两个时段里X和Y各自服从某一种分布,可以通过如下相似度度量方法分析两个分布的相似度,从而判断系统关于时间的稳定性。

PS:距离度量要满足:非负性、同一性( d i s t ( x , y ) = 0 dist(x,y)=0 dist(x,y)=0,当且仅当x=y)、对称性、三角不等式;相似度度量则不做要求。

闵科夫斯基距离(Minkowski)

计算公式:
d i s t ( X , Y ) = ( ∑ i = 1 n ∣ x i − y i ∣ p ) 1 p dist(X,Y)=\big(\sum_{i=1}^{n}|x_i-y_i|^p\big)^\frac{1}{p} dist(X,Y)=(i=1nxiyip)p1
描述: p=2,即欧式距离;p=1,即曼哈顿距离;p= ∞ \infty ,即切比雪夫距离。

杰卡德距离(Jaccard)

计算公式:
J ( A , B ) = ∣ A ⋂ B ∣ ∣ A ⋃ B ∣ J(A,B)=\frac{ |{A} \bigcap {B}| } {{ |{A} \bigcup {B}| }} J(A,B)=ABAB
描述: 该距离满足三角不等式,是对称,非负距离。

余弦相似度(cosine similarity)

计算公式:
cos ⁡ ( θ ) = x T y ∣ x ∣ ⋅ ∣ y ∣ = ∑ i = 1 n x i y i ∑ i = 1 n x i 2 ∑ i = 1 n y i 2 \cos(\theta) = \frac{x^Ty}{|x|\cdot|y|}= \frac{ \sum\limits_{i=1}^n x_iy_i }{ \sqrt{ \sum\limits_{i=1}^n x_i^{2} } \sqrt{ \sum\limits_{i=1}^n y_i^{2} } } cos(θ)=xyxTy=i=1nxi2 i=1nyi2 i=1nxiyi
描述: θ \theta θ是n维向量x,y的夹角,根据余弦定理推出余弦值,作为余弦相似度。考虑为什么余弦值可以作为相似度度量?

Pearson相似系数

对比余弦相似度公式,相关系数即当 μ X = 0 , μ Y = 0 \mu_{_X}=0,\mu_{_Y}=0 μX=0,μY=0
计算公式:
ρ X Y = c o v ( X , Y ) σ X σ Y = E [ ( X − μ X ) ( Y − μ Y ) ] σ X σ Y = ∑ i = 1 n ( X i − μ X ) ( Y i − μ Y ) ∑ i = 1 n ( X i − μ X ) 2 ∑ i = 1 n ( Y i − μ Y ) 2 \rho_{_{XY}} = \frac{cov(X,Y)} {\sigma_{_X}\sigma_{_Y}} = \frac{ E[(X-\mu_{_X}) (Y-\mu_{_Y}) ] } {\sigma_{_X}\sigma_{_Y}} = \frac{ \sum\limits_{i=1}^n (X_i-\mu_{_X}) (Y_i-\mu_{_Y}) }{ \sqrt{ \sum\limits_{i=1}^n (X_i-\mu_{_X}) ^{2} } \sqrt{ \sum\limits_{i=1}^n (Y_i-\mu_{_Y}) ^{2} } } ρXY=σXσYcov(X,Y)=σXσYE[(XμX)(YμY)]=i=1n(XiμX)2 i=1n(YiμY)2 i=1n(XiμX)(YiμY)
对比余弦相似度公式,: μ X = 0 , μ Y = 0 \mu_{_X}=0,\mu_{_Y}=0 μX=0,μY=0,相关系数即为将X,Y坐标向量各自平移到原点后的余弦夹角。所以应用夹角余弦作为距离度量(文档间相似度),表征的就是去均值化的随机向量间的相关系数。

相对熵(KL散度)

计算公式:
D ( p ∣ ∣ q ) = ∑ x P ( x ) log ⁡ p ( x ) q ( x ) = E p ( x ) log ⁡ p ( x ) q ( x ) D(p||q) = \sum_{x}P(x)\log{ \frac{p(x)}{q(x)} } = E_{p(x)}\log{ \frac{p(x)}{q(x)} } D(pq)=xP(x)logq(x)p(x)=Ep(x)logq(x)p(x)
描述:
自信息:一个事件 X = x X=x X=x 的自信息为 I ( x ) = − log ⁡ p ( x ) I(x) = -\log{p(x)} I(x)=logp(x)
单位奈特(无所谓),要知道一个单位代表的物理含义:以 1 e \frac{1}{e} e1的概率观测到一件事时获得的信息量。
自信息只处理单个的输出。下面熵出现,直接把整个分布X中的不确定性总量进行量化。
熵(entropy): H ( p ) = − ∑ i n p ( X = x i ) log ⁡ ( p ( X = x i ) ) H(p)=-\sum\limits_{i}^n{ p(X=x_i) \log{ \big( p(X=x_i)} \big) } H(p)=inp(X=xi)log(p(X=xi))
实际上,熵是针对一个分布而言的,即求解分布 X X X~ P ( x ) P(x) P(x)中所有可能事件 x x x的自信息的期望和:
H ( X ) = E X − P [ I ( x ) ] = − E X − P [ log ⁡ P ( x ) ] H(X) = E_{_{X-P}} [I(x)] = -E_{_{X-P}}[\log{P(x)}] H(X)=EXP[I(x)]=EXP[logP(x)]

解释:
熵的计算公式: H ( p ) = − ∑ i n p i log ⁡ p i H(p)=- \sum\limits_{i}^n{ p_i \log p_i } H(p)=inpilogpi 包含3个元素:

  1. log ⁡ P ( x ) \log{P(x)} logP(x) :对数函数形式是为了满足同一分布下的不同的事件的自信息可加构造出来的。
  2. − - :负号为了满足物理概念, y = log ⁡ ( x ) y=\log(x) y=log(x)是单调递增函数,为了保证熵越大,不确定性越大,所以要构造一个 I ( x ) = − log ⁡ p ( x ) I(x) = -\log{p(x)} I(x)=logp(x) 满足概率越大的事件发生了,获取的信息越少,熵越小。
  3. p ( x ) p(x) p(x)是上面求期望引入的元素。
  4. 综上熵的公式理解为了满足可加性、符合物理意义、求期望而构造出来的。

到这里打住…经验熵=基于极大似然估计的熵、熵-条件熵=互信息(决策树中的信息增益)、熵+KL散度=交叉熵 ⋯ \cdots

Hellinger距离

计算公式:
D α ( p ∣ ∣ q ) = 2 1 − α 2 ( 1 − ∫ p ( x ) 1 + α 2 q ( x ) 1 − α 2 d x ) D_\alpha(p||q) =\frac {2}{1-\alpha^2} \bigg( 1- \int{ p(x) ^{ \frac {1+\alpha}{2} } q(x) ^{ \frac {1 - \alpha}{2} } } dx \bigg) Dα(pq)=1α22(1p(x)21+αq(x)21αdx)
描述: 该距离满足三角不等式,是对称,非负距离。

你可能感兴趣的:(总结)