私の目的は、その属性に基づいて2人のユーザー間の類似度を計算することです。たとえば、プレーヤーを考えて、年齢、給料、ポイントを属性として考えてみましょう。属性に基づいて類似度を計算する
また、重要度の順に各属性に重みを付けたいとします。私の場合、年齢は給料とポイントよりも重要な属性です。したがって、ユークリッド距離を使って類似度を計算すると仮定しましょう。
Given user 1 who is age 20, salary 50, points scored 100
Given user 2 who is age 24, salary 60, points scored 85
Given user 3 who is age 19, salary 62, points scored 80
Iは、((20-24)^ 2 +(60-50)^ 2 +(85-100)の
SQRTを行うことができ、ユーザ1とユーザ2との間の類似度を計算します^ 2)
ここでも、私たちはユークリッド距離において、類似度の点から見て、より近い2つのオブジェクトの数が少ないほど、重みを追加したいと考えています。 (0.60 *(20-24)^ 2 + 0.20 *(60-50)^ 2 + 0.20 *(60-50)^ 2 + 0.20 *(85- $))のように、年齢が最も重要なので、 100)^ 2)
私のアプローチは正しいですか?また、私は類似性を計算するためにコサインの類似性などの他のアルゴリズムを検討する必要がありますか?
何について修正しますか?このアプローチは少なくとも妥当である。他にどの類似性指標を使用するかは、アプリケーションにのみ依存します。そして、あなたはおそらくいくつかをテストして、どれが最もうまくいくかを見いだす必要があります。 –
@NicoSchertler私は重みを正しく加えているかどうか分からず、また、2人のユーザー間の類似度をより正確に計算する他のアルゴリズムがあるかどうかも疑問でした。例えば、年齢は私のアプリケーションにとって最も重要な要素です。 – user1010101
重み付けは私には良く見えます。もちろん、属性の範囲に注意する必要があります。それらが異なる場合は、正規化を導入することもできます。他にも多くの類似点があります。 [Wolfram](https://reference.wolfram.com/language/guide/DistanceAndSimilarityMeasures)。html)はそれらのいくつかをリストしています(数値データを参照)。 –