0

10の質問に対する回答に基づいてユーザーを比較したいと考えています。私の元の考えは、各質問を整数[1,5]に解決することでしたが、この考え方は常に働くことはありません。たとえば、次のようにユーザーを比較する際の類似性の程度が良い

vec1 = [1,1,1,1,1,1,1,1,1,1]

vec2 = [5,5,5,5,5,5,5,5,5,5]

get_cos_sim(vec1, vec2) = 1

ので、ユーザーは完全に異なり答えたにも関わらず、ベクトルは同じです。

各質問に対する回答の類似性に基づいて、同様のユーザーを取得したいと考えています。したがって、ある質問について、Aの回答が1に解決され、Bの回答が2に解決された場合、回答の類似度はAとCの回答よりも高くなります。

答えて

0

メトリック私は使用します:

それぞれの答えの違いの絶対値を取って、これらの値のすべてを合計します。類似は逆です。

+0

私はそれについて考えましたが、問題は2つの要素ベクトル '[0、5]'と '[5、0]'を取ります。ユーザーは質問に根本的に異なる回答をしましたが、アルゴは各ベクトルごとに10を返します。私はユークリッド距離を考えていた。 –

+0

右は逆です。そのベクトルの類似度は、0.1 – OregonTrail

+0

[5,0]、[5,0]の類似度は無限大になります。 [3,1]、[5,2]の類似度は0.333になります。 – OregonTrail

関連する問題