如何将距离(欧几里得)转换为相似度分数


13

我正在使用表示聚类以聚类说话者的声音。当我将话语与聚集的扬声器数据进行比较时,我得到(基于欧几里得距离)平均失真。该距离可以在范围内。我想将此距离转换为相似度得分。请指导我如何实现这一目标。k[ 0 ,1 ][0,∞][0,1]

Answers:


16

如果d(p1,p2)表示从点p1到点p_2的欧式距离p2,

11+d(p1,p2)

是常用的。


如果我错了,请纠正我,如果我们有并且其中每个和 都是维。然后,我们可以定义相似度,例如, 。X=(x1,x2,x3,...,xt)X ý d š 我中号我升一ř 我Ť ÿ = 1Y=(Y1,Y2,Y3,...,Yn)xyD
Similarity=1t∑i=1t11+minDistance(xi,Y)
— 穆罕默德

我知道分母中的加号1可以避免除以零误差。但是我发现加一值不成比例地影响大于1的d(p1,p2)值,并最终显着降低相似性得分。还有另一种方法吗?也许s = 1-d(p1,p2)
— aamir23 '18

9

您还可以使用:其中您想要的距离函数。1edistdist


能否请您提供与找到该方程式有关的任何参考书/文档?@Dougal
— Justlife

@AnimeshKumarPaul我没有写这个答案,只是改善了格式。但是它经常被用作“通用RBF内核”的版本。参见例如这里。这个问题关系到输出是否为正定核?但是,如果您不在乎,则至少可以满足一个直观的相似性概念,即较远的点不太相似。
— Dougal

@Justlife:对于这个“距离百科全书”,Google并用pdf文档选择结果。
— 未处理的例外情况

7

听起来您需要类似于余弦相似度的东西,它本身就是单位间隔中的相似度分数。实际上,欧氏距离与余弦相似度之间存在直接关系!

观察

||x−x′||2=(x−x′)T(x−x′)=||x||+||x′||−2||x−x′||.

余弦相似度为 其中是与之间的角度。θXX'

f(x,x′)=xTx′||x||||x′||=cos⁡(θ)
θxx′

当我们有 和 | | x − x ' | | 2 = 2 (1 − f (x ,x '))f (x ,x ')= x T x ',||x||=||x′||=1,

||x−x′||2=2(1−f(x,x′))
f(x,x′)=xTx′,

所以

1−||x−x′||22=f(x,x′)=cos⁡(θ)
在这种特殊情况下,。

从计算角度来看,仅计算余弦而不是欧几里得距离,然后执行转换可能会更有效。


3

怎么样高斯核?

K(x,x′)=exp⁡(−‖x−x′‖22σ2)

距离用于指数。内核值在范围内。有一个调整参数。基本上,如果高,则任何都将接近1 。如果低,则从到的微小距离将导致接近0。[ 0 ,1 ] σ σ ķ (X ,X ')X ,X ' σ X X ' ķ (X ,X ')‖x−x′‖[0,1]σσK(x,x′)x,x′σxx′K(x,x′)


1
请注意,此答案与@Unhandled异常非常相关:这是,其中[引入比例因子]是,一个以为度量标准的高斯核。这仍然是一个有效的内核,尽管OP不必在乎。 EXP ( - γ d (X ,X '))√exp⁡(−γd(x,x′)2)exp⁡(−γd(x,x′))d
— Dougal 2015年

0

如果您使用的距离度量标准自然在0到1之间,例如Hellinger距离。然后,您可以使用1-距离来​​获得相似性。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.