2009-06-15 59 views
9

與任何編程語言相比,此問題與邏輯更相關。如果問題不適合論壇,請讓我知道,我會刪除這個。如何計算分數?

我必須編寫一個邏輯來計算博客獎網站的博客評分。一個博客可以提名多個獎項類別,並由同行評審或由評委以-1至5的等級評分(-1表示他們完全不喜歡的博客)。現在,博客可以由一個或多個評委評分。計算博客最終分數的一個標準是,如果博客被更多人評爲正面,它應該得到更多的權重(反之亦然)。同樣,即使只有一名陪審員評分爲-1的博客也應該將其分數受到影響(-1在這裏是一種否決權)。最後,我還希望根據博客的Technorati排名獲得額外的分數(以便最終得分基於評委的評分+ Technorati排名)。

例如:一個博客在A類中的總評分爲6個陪審員。 2評級爲3,評級爲3,評級爲2,評級爲1(評分爲4)(我曾用計算得分爲(2 * 3 + 3 * 2 + 1 * 4)/ 6 = 16/6 = 2.67得到加權平均但我不滿意,主要是因爲當評委評分爲-1時效果不佳,此外,我還需要添加Technorati排名排名標準)。

你能幫我決定計算最終分數的最佳方法嗎(保持評分方法與上面相同,因爲現在不能改變)?

+0

這個問題對於SO來說似乎很好。您正在要求「最佳」算法來分配分數。 – paxdiablo 2009-06-15 07:15:56

+1

有趣的問題,+1 – Mattis 2010-07-12 08:58:24

+0

爲什麼你不會在得分之前使用'if(scores include -1){remove from competition}`?這或多或少是否決權,對吧? – naught101 2012-07-11 05:30:57

回答

0

你可以在內部使用0到6的分數。只要做一個移動,計算分數並移回。我猜-1對你的計算有一些干擾。

5

如果您想更強烈地衡量-1等級的效果,請使用相同的平均得分計算,但只要您看到-1就代替-10。如果您不希望負面評級重要,則可以選擇-10以外的值。

4

基於投票計算得分將非常容易。添加技術等級將是棘手的部分。

我做了一個快速腳本計算基於該算法的一些成績

score = (vote_sum - (vetos * veto_weight))/number_of_votes 

您可以更改URL paramters得到不同的值

有很多關係,所以也許你可以使用Technorati博客排名爲決勝者

4

您可能會考慮使用Wilson評分間隔的下限來評分。

查看http://www.evanmiller.org/how-not-to-sort-by-average-rating.html瞭解更多詳情。雖然在那裏,它用於更簡單的伯努利案件。

要點是如果你有很多評分,你對得分的信心程度會更高。然後,您可以將當地評分和Technorati評分的得分相加,並將得分與當地和Technorati的選民人數進行加權。

至於想要一個-1票有很高的影響力,只需將它重新映射到一個大的負值,與您希望的影響成比例,然後再將其投入到您的得分公式中。