5

だから私は星評価システムを構築し、「最高評価」のアイテムをリストするアルゴリズムを考え出そうとしました。簡単にするために、ここに列があります:

item_name
average_rating (a decimal from 1 to 5)
num_votes

投票数と評価の間の「スイートスポット」を特定しようとしています。例えば...

  • 評価されたアイテム(4.6 / 20票)は、(5.0 / 2票)のアイテムよりもリストの上位にある必要があります
  • 評価されたアイテム(2.5 / 100票)は、(4.5 / 2票)のアイテムより下にある必要があります

つまり、num_votesは「トップ」の要素を果たします。

この「スイートスポット」を決定するのに非常に優れたアルゴリズムを知っている人はいますか?

前もって感謝します。

4

3 に答える 3

10

ここに別の、統計的に健全な良い方法があります:http ://www.thebroth.com/blog/118/bayesian-rating

于 2009-09-16T15:12:57.783 に答える
3

問題は、4.6/20が5.0/2よりどれだけ高く評価されるかということです...

少なくともx票を持たないアイテムを考慮しないという考え。

もう1つのアイデアは、「中」の票で埋めることです。10票が最小であると決定します。5.0 / 2は、2.5の8つの仮想投票で満たされる必要があります

5.0 / 2は5.0で2票を意味し、2.5で8を追加すると、30/10-> 3.0になります;)

ここで、アイテムが少なくとも何票を獲得するかを決定する必要があります。すでに最低票を獲得している人については、直接比較を行うものとします。

4.5/20 > 4.4/100
5.0/2  < 3.1/20  (as 5.0/2 is, as we calculated, 3.0/10)
于 2009-09-16T14:48:56.113 に答える
2

10票ごとに1の重みを与えるので、20票でアイテムに2の重みを与えるのはどうですか。次に、アイテムの重量が0の場合、平均から0.5を失います。

4.6/20 = 20/10: 2 weight
5.0/2 = 2/10: 0 weight

(4.6 * 0.02) + 4.6 = 4.692
(5.0 * 0.00) + 5.0 = 5 - 0.5 = 4.5

2.5/100 = 100/10: 10 weight
4.5/2 = 2/10: 0 weight

(2.5 * 0.1) + 2.5 = 2.75
(4.5 * 0.0) + 4.5 = 4.5 - 0.5 = 4
于 2009-09-16T15:21:57.343 に答える