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

本文介绍了几种常用的量化分布相似度的方法,包括闵科夫斯基距离、杰卡德距离、余弦相似度、Pearson相似系数、相对熵(KL散度)及Hellinger距离等,并详细解析了每种方法的计算公式及其特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

闵科夫斯基距离(Minkowski)

计算公式:
dist(X,Y)=(∑i=1n∣xi−yi∣p)1pdist(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⁡(θ)=xTy∣x∣⋅∣y∣=∑i=1nxiyi∑i=1nxi2∑i=1nyi2\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=1nxi2i=1nyi2i=1nxiyi
描述: θ\thetaθ是n维向量x,y的夹角,根据余弦定理推出余弦值,作为余弦相似度。考虑为什么余弦值可以作为相似度度量?

Pearson相似系数

对比余弦相似度公式,相关系数即当μX=0,μY=0\mu_{_X}=0,\mu_{_Y}=0μX=0,μY=0
计算公式:
ρXY=cov(X,Y)σXσY=E[(X−μX)(Y−μY)]σXσY=∑i=1n(Xi−μX)(Yi−μY)∑i=1n(Xi−μX)2∑i=1n(Yi−μ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)2i=1n(YiμY)2i=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)=∑xP(x)log⁡p(x)q(x)=Ep(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=xX=xX=x 的自信息为I(x)=−log⁡p(x)I(x) = -\log{p(x)}I(x)=logp(x)
单位奈特(无所谓),要知道一个单位代表的物理含义:以1e\frac{1}{e}e1的概率观测到一件事时获得的信息量。
自信息只处理单个的输出。下面熵出现,直接把整个分布X中的不确定性总量进行量化。
熵(entropy):H(p)=−∑inp(X=xi)log⁡(p(X=xi))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))
实际上,熵是针对一个分布而言的,即求解分布XXX~P(x)P(x)P(x)中所有可能事件xxx的自信息的期望和:
H(X)=EX−P[I(x)]=−EX−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)=−∑inpilog⁡piH(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)=21−α2(1−∫p(x)1+α2q(x)1−α2dx)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)
描述: 该距离满足三角不等式,是对称,非负距离。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值