9

ユーザーがアイテムを「好き」と「嫌い」にできるウェブサイトを持っています。

そのため、各アイテムについて、「いいね」の総数や「いいね」の投票総数の割合などのデータがあります。

ユーザーに表示するスコアを 1 つだけ計算したいと思います。item_A は 90% の「いいね」を持ち、item_B は 80% の「いいね」を持っている可能性がありますが、item_B の合計投票数が 10,000 票で、item_A しか投票していない場合、item_B は item_A の前にランク付けする必要があるため、% だけを使用しても機能しません。総投票数1,000票。

同様に、合計の「いいね」数だけを使用しても機能しません。アイテムには多数の「いいね」が含まれる可能性がありますが、「いいね」の割合が低い場合、そのアイテムは非常に高くランク付けされるべきではないためです。

上記のデータから単一のスコアを作成するのに適したアルゴリズムは何でしょうか?

理想的には、スコアは何らかの方法で「意味のある」または「正規化」されている必要があります。たとえば、IMDB にアクセスして、映画のスコアが 8/10 であることを確認した場合、それが良い映画であることがすぐにわかります。一方、1,370 というスコアが表示された場合、それが良いか悪いかは必ずしもわかりません。

4

3 に答える 3

10

ベイジアン評価は、あなたがやりたいことにぴったりです。投票数が少ないが評価が高い問題を処理します。

Bayesian Rating は Bayesian Average を使用しています。これは、投票の「信憑性」に基づいてアイテムの評価を計算する数学用語です。投票数に基づく確実性が高いほど、ベイジアン評価は単純な加重なしの評価に近づきます。投票数が非常に少ない場合、アイテムのベイズ評価はすべてのアイテムの平均評価に近くなります。

次の式を使用します。

br = ( (平均投票数 * 平均評価) + (投票数 * この評価) ) / (投票数平均 + 投票数)

伝説:

avg_num_votes: num_votes>0 のすべての項目の平均投票数
avg_rating: 各項目 (これも num_votes>0 の項目) の平均評価
this_num_votes: この項目の投票数
this_rating: この項目の評価

注: avg_num_votes は、この式の「魔法の」重みとして使用されます。この値が高いほど、ベイジアン評価値に影響を与えるために必要な票が多くなります。

詳細はこちら

于 2010-12-02T20:41:34.190 に答える
10

Reddit がこの種のランキングをどのように行っているかについての非常に優れた記事がいくつかありますここおよびここ. 簡単に言えば、スコアの 90% 信頼区間の下限で投稿をランク付けします。投票数が少ないエントリは信頼区間が大きいため、投票数が多いが平均が同じエントリよりもランクが低くなる傾向があります。

于 2010-12-02T02:40:20.803 に答える
1

おそらく、パーセンテージベースの統計を使用できますが、ボリュームに応じて色を付けることができますか? たとえば、関心が最も高い場合は赤/オレンジ/黄色、関心が低い場合は青/緑/紫、そしてユーザーがパーセンテージまたは色に従ってソートできるようにします。

于 2010-12-02T02:33:57.763 に答える