2011-02-23 52 views
14

我創建一個網站,人們可以通過分配星級評分(比如5星評級)來評定他們選擇的對象。對象排列在一系列標籤和類別中,例如。電子產品>圖形卡> pci express> ...或維護>承包商>水管工。基於投票數量和五星級評分對象的算法

如果其他用戶搜索特定類別或標籤,則匹配必須返回該類別中的最高「額定」對象。然而,如果一個人只爲一個物體投票5星而1000個用戶投票平均爲另一個物體的4.5星,那麼這個系統就會有缺陷。很明顯,邏輯規定可信度將被賦予1000個用戶評分對象,而不是1個用戶評估的對象,即使它具有「較低」分數。

相反,信任具有500分用戶評分和4.8分的對象比信任具有例如1000用戶評分4.5的對象更可靠。

什麼算法可以實現這個權重?

+0

沒有一個很好的答案給你,我會說一個被1000個用戶評分的對象比僅有500個評分的對象吸引了更多的注意力,不管評分是什麼。 – 2011-02-23 21:06:53

+0

另一個觀察結果:對一切評分爲3,4或5的人的4星評級比使用整個範圍的人的評分低4星評級。 – 2011-02-23 22:20:22

+0

相關:http://fulmicoton.com/posts/bayesian_rating/ – Palec 2014-12-23 16:31:21

回答

10

一個偉大的回答這個問題是在這裏: http://www.evanmiller.org/how-not-to-sort-by-average-rating.html

+3

+1 - 尼斯。儘管如此,頁面上的公式「只考慮正面和負面的評級(即不是五星級)」。任何想法如何將其擴展到五星評級? – Justin 2011-02-23 21:24:11

+0

將5星標記爲1,1star標記爲0,插入其餘標記。將正面評分的觀察分數更改爲平均評分。但是,這會拋棄有關評級分佈的信息 - 它僅使用平均數和總數,我不知道如何考慮這一點,但可能並不重要。 – drewrobb 2011-02-23 22:32:06

+0

我不認爲威爾遜區間是這樣工作的。它設計用於二項變量(即:僅有兩個結果)。當你比較小尺寸時,這些細節確實很重要。 – mhum 2011-02-24 04:19:37

2

我會被誘惑的截止(比方說,五票儘管這顯然是依賴於流量)您認爲該項目爲其中便陷入困境之前。這將顯着降低垃圾郵件/白癡排行榜的動機(特別是如果每​​次投票都與用戶帳戶綁定),並且還可以幫助您實現簡單,快速的實施和合理可靠的系統。

3

按推薦排序時,您可以使用Bayesian average

+0

你能否添加更多信息?在Wikipedia上似乎很模糊:「請注意,納入平均值計算中的附加信息[可以是由計算相關平均值併爲計算目的服務的人主觀確定的值。」 – Justin 2011-02-23 21:26:07

+1

我同意它的寫作方式過於普通。可能最簡單的解釋是,你無形地開始每個對象的平均值附近的一堆評級值。你不需要計算實際的平均值,你可以任意選擇它,它仍然有效。 – jprete 2011-02-23 22:13:28

1
simboid_function(value) = 1/(1+e^(-value)); 

rating = simboid_function(number_of_voters) + simboid_function(average_rating); 
+0

請提供關於您的解決方案的一些解釋! :) – 2017-05-13 17:47:33