如何像余弦相似度一样将欧氏距离转换为 0 和 1 的范围?
How to convert Euclidean distance to range 0 and 1 like Cosine Similarity?
想将欧氏距离映射到范围 [0, 1],有点像向量的余弦相似度。
例如
input output
0 1.0
1 0.9 approximate
2 0.8 to 0.9 somewhere
inf 0.0
我尝试了公式 1/(1+d)
,但它很快就会偏离 1.0。
您似乎希望分数的分母增长得更慢(分母是底部的部分,目前为 (d+1))。有多种方法可以处理这个问题。例如,为 d 尝试较低的幂,例如
1 / (1 + d**(0.25))
...或者分母呈指数衰减,比如
1 / (1.1 ** d)
...或使用三角函数调整您的映射,例如
1 - tanh(d)
这些家庭中的某一个对你有用吗?
想将欧氏距离映射到范围 [0, 1],有点像向量的余弦相似度。
例如
input output
0 1.0
1 0.9 approximate
2 0.8 to 0.9 somewhere
inf 0.0
我尝试了公式 1/(1+d)
,但它很快就会偏离 1.0。
您似乎希望分数的分母增长得更慢(分母是底部的部分,目前为 (d+1))。有多种方法可以处理这个问题。例如,为 d 尝试较低的幂,例如
1 / (1 + d**(0.25))
...或者分母呈指数衰减,比如
1 / (1.1 ** d)
...或使用三角函数调整您的映射,例如
1 - tanh(d)
这些家庭中的某一个对你有用吗?