我有一個現有的網絡應用程序,允許用戶根據他們的難度「評分」項目。 (0到15)。目前,我只是簡單地從每個用戶的意見中取出平均值,並從MySQL中直接顯示平均值。然而,我(和我的用戶)越來越清楚,衡量這些數字會更合適。加權平均值
奇怪的是,幾個小時的谷歌並沒有太多的變化。我確實發現了兩篇文章,展示了基於「貝葉斯過濾器」(我部分理解)的站點範圍評分系統。 Here的一個例子:
的公式爲:
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」(arith整個網站的平均評分)無效。
所以,我的問題的重申:
使用MySQL,PHP,或兩者兼而有之,我試着從aritmetic平均得到:
(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
一個問題需要一個問號,你的在哪裏? – 2008-11-11 16:46:41