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

机器算法验证 聚类 k-均值 距离 欧几里得
2022-01-19 04:39:59

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

4个回答

如果到点p_​​2的欧式距离d(p1,p2)p1p2

11+d(p1,p2)

是常用的。

您也可以使用:您想要的距离函数在哪里。1edistdist

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

请注意

||xx||2=(xx)T(xx)=||x||+||x||2||xx||.

虽然余弦相似度是

f(x,x)=xTx||x||||x||=cos(θ)
在哪里θ是之间的角度xx.

什么时候||x||=||x||=1,我们有

||xx||2=2(1f(x,x))
f(x,x)=xTx,

所以

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

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

高斯核怎么样?

K(x,x)=exp(xx22σ2)

距离在指数中使用。内核值在范围内。有一个调整参数基本上如果很高,将接近 1 如果的微小距离将导致接近 0。xx[0,1]σσK(x,x)x,xσxxK(x,x)