以下は、ベクトル間のユークリッド距離を計算するためのコードと、変換されたデータ セット (ベクトル) のスニペットです。
import itertools
import numpy as np
vect=[[2, 1, 1, 1, 1, 3, 4, 2, 5, 1],
[1, 5, 2, 1, 1, 1, 1, 1, 1, 2],
[2, 1, 1, 1, 2, 1, 1, 1, 1, 1]]
for u1, u2 in itertools.combinations(vect, 2):
x = np.array(u1)
y = np.array(u2)
space = np.linalg.norm(y - x)
print space
ベクトル間のユークリッド距離は次のとおりです。
7.0
5.56776436283
4.472135955
私の目標は、ベクトル間の類似性を計算し、比較ごとに類似性スコアを出力することです。典型的な類似性スコアは 0 から 1 の間で、0 は類似していない、1 は完全に類似している。ここでの質問は、ユークリッド距離を類似度スコアに変換するにはどうすればよいですか? 誰かがこの式を提案しました: 1/1+d(P1, P2) つまり、ユークリッド距離の逆数 = 類似度スコア。何か提案はありますか? ありがとう