[toc]
常见距离与相似度度量
欧氏距离
定义在两个向量(两个点)上:点x和点y的欧氏距离为:
dEuclidean=(x−y)⊤(x−y)
闵可夫斯基距离
Minkowski distance, 两个向量(点)的p阶距离:
dMinkowski=(∣x−y∣p)1/p
当p=1时就是曼哈顿距离,当p=2时就是欧氏距离。
马氏距离
定义在两个向量(两个点)上,这两个点在同一个分布里。点x和点y的马氏距离为:
dMahalanobis=(x−y)⊤Σ−1(x−y)
其中,Σ是这个分布的协方差。
当Σ=I时,马氏距离退化为欧氏距离。
互信息
定义在两个概率分布X,Y上,x∈X,y∈Y.它们的互信息为:
I(X;Y)=x∈X∑y∈Y∑p(x,y)logp(x)p(y)p(x,y)
余弦相似度
衡量两个向量的相关性(夹角的余弦)。向量x,y的余弦相似度为:
cos(x,y)=∣x∣⋅∣y∣x⋅y
理解:向量的内积除以向量的数量积。
皮尔逊相关系数
衡量两个随机变量的相关性。随机变量X,Y的Pearson相关系数为:
ρX,Y=σXσYCov(X,Y)
理解:协方差矩阵除以标准差之积。
范围:[-1,1],绝对值越大表示(正/负)相关性越大。
对两个集合X,Y,判断他们的相关性,借用集合的手段:
J=X∪YX∩Y
理解:两个集合的交集除以并集。
扩展:Jaccard距离=$1-J$。
概率分布的距离度量
Kullback–Leibler divergence,相对熵,衡量两个概率分布P(x),Q(x)的距离:
DKL(P∣∣Q)=i=1∑P(x)logQ(x)P(x)
非对称距离:DKL(P∣∣Q)=DKL(Q∣∣P).
Jensen–Shannon divergence,基于KL散度发展而来,是对称度量:
JSD(P∣∣Q)=21DKL(P∣∣M)+21DKL(Q∣∣M)
其中M=21(P+Q)。是对称度量。
Maximum mean discrepancy,度量在再生希尔伯特空间中两个分布的距离,是一种核学习方法。两个随机变量的距离为:
MMD(X,Y)=i=1∑n1ϕ(xi)−j=1∑n2ϕ(yj)H2
其中ϕ(⋅)是映射,用于把原变量映射到高维空间中。
理解:就是求两堆数据在高维空间中的均值的距离。
也是将两个分布映射到高维空间(格拉斯曼流形)中,在流形中两堆数据就可以看成两个点。Principal angle是求这两堆数据的对应维度的夹角之和。对于两个矩阵X,Y,计算方法:首先正交化两个矩阵,然后:
PA(X,Y)=i=1∑min(m,n)sinθi
其中m,n分别是两个矩阵的维度,θi是两个矩阵第i个维度的夹角,Θ={θ1,θ2,⋯,θt}是两个矩阵SVD后的角度:
X⊤Y=U(cosΘ)V⊤
希尔伯特-施密特独立性系数,Hilbert-Schmidt Independence Criterion,用来检验两组数据的独立性:
HSIC(X,Y)=trace(HXHY)
其中X,Y是两堆数据的kernel形式。
推土机距离,度量两个分布之间的距离,又叫Wasserstein distance。以最优运输的观点来看,就是分布X能够变换成分布Y所需要的最小代价:
一个二分图上的流问题,最小代价就是最小流,用匈牙利算法可以解决。
emd(X,Y)=min∑jwyj∑i,jfijd(xi,yj)
约束条件为
s.t.i∑fij=wyj,j∑fij=wxi.
[1] http://blog.csdn.net/pipisorry/article/details/45651315
[2] http://chaofan.io/archives/earth-movers-distance-%E6%8E%A8%E5%9C%9F%E6%9C%BA%E8%B7%9D%E7%A6%BB