友達のランキングリストがあります。次に、同じ友達のリストをいくつか取得しますが、ランキングは異なります。どのリストが元のランキング リストに最も近いかを確認するアルゴリズムはありますか?
ありがとう
友達のランキングリストがあります。次に、同じ友達のリストをいくつか取得しますが、ランキングは異なります。どのリストが元のランキング リストに最も近いかを確認するアルゴリズムはありますか?
ありがとう
それはおそらく、2 つのランキング間の「距離」の測定値によって異なります。
たとえば、次のように定義すると
dist(R1, R2) = Sum abs(position of i in R1 - position of i in R2), over all i
i
次に、最初のランキングのすべての位置を配列に格納できます
すなわち
pos[Peter] = 3
Peter
は、あなたのランキングで 3 番目のフレンドとして表示されることを意味します。
を使用して上記の合計を計算することにより、線形時間で最も近いランキングを見つけることができますpos
。
それらの間のランク距離を比較する必要があると思いますが、重みを使用します。例えば1位のユーザーが10位だったら大きな差ですが、101位のユーザーが110位だったとしても大差ないですから。したがって、ランクの高いユーザーの違いには、より高い係数を設定する必要があります。