ユーザーが難易度に基づいてアイテムを「評価」できる既存の Web アプリがあります。(0 ~ 15)。現在、私は単に各ユーザーの意見の平均を取り、MySQL から直接平均を提示しています。しかし、私 (および私のユーザー) には、数値を重み付けする方が適切であることが明らかになりつつあります。
奇妙なことに、Google を数時間使用してもあまり効果がありませんでした。「ベイジアン フィルター」に基づくサイト全体の評価システムを示す 2 つの記事を見つけました (これは部分的に理解しています)。 一例を次に示します。
式は次のとおりです。
WR=(V/(V+M)) * R + (M/(V+M)) * C
どこ:
* WR=Weighted Rating (The new rating) * R=Average Rating (arithmetic mean) so far * V=Number of ratings given * M=Minimum number of ratings needed * C=Arithmetic mean rating across the whole site
ここで、アイテムごとの総投票数に基づいて重み付けを増やすというアイデアが気に入っています...ただし、私のサイトの難易度はアイテムごとに大幅に異なる可能性があるため、「C」(全体の算術平均評価)を取りますサイト) は無効です。
だから、私の質問の言い換え:
MySQL、PHP、またはその両方を使用して、算術平均から取得しようとしています。
(5 + 5 + 4)/3 = 4.67 (rounded)
...加重平均に:
rating / weight
5 / 2 (since it was given 2 times)
5 / 2
4 / 1
(sum[(rate * weight)])/(sum of weights)
(5 * 2) + (5 * 2) + (4 * 1) / (2 + 2 + 1)
(24)/(5)
= 4.8