2013-03-08 101 views
2

背景;總得分排名算法

我正在尋找一種基於聽衆反饋來計算一段音頻分數的方法。每次用戶收聽曲目時,他們都必須投票,如果他們喜歡,簡單的是或否。然後每個曲目都有一個分數,根據是和沒有投票的數量。

此外,我想在31天的過程中統一減少每個投票的價值,因此經過這段時間後,其值爲0,並且不會影響整體總分。

我發現很多基於reddit和黑客新聞排名算法的討論,但這些似乎衰減總分,而不是個人投票本身。根據投票的最初投票時間,每個投票將有不同的衰減量。

任何人都可以幫助或推薦一些材料來看待?

謝謝

+0

在交叉驗證中您會發現這有幫助:http://stats.stackexchange.com/questions/2563/what-are-some-of-the-best-ranking-algorithms-with-inputs-as-票面價值 – nlucaroni 2013-03-08 19:51:27

+0

第0天,有多少票是值得的,沒有票?含義:如果當前得分是X,我投贊成/不贊成,現在得分是多少? (我投票後立即假設X在此期間並沒有以任何方式/意義衰減)。 – 2013-03-08 19:54:28

回答

1

你可以將它建模爲「是」= 1.0和「否」= 0.0。 然後,投票後第n天的投票值=(31-n)/ 31。進一步的條件是,如果n> 31,那麼將其設置爲0. 希望這回答你的問題。

1

你想降低什麼加速度。一個常見的是對數因爲它很容易實現。對喜歡評分爲1,對不喜歡評分爲-1。然後,當加入喜歡/不喜歡時,除以投票後的天數。在第1天,投票的絕對值爲1.在第2天,它將是1/2。在第三天,它會值三分之一,等等......在第三十一天,它將值得1/31(0.03)。

對數降級的問題是它下降得非常快。您可以使用許多其他方法,例如乘以log(11-d),其中d = 1的第一天,第二天的2,等等。它只允許11天退化。日誌(31-d)將允許31天。您需要確保您不要嘗試執行日誌(0)或日誌(-x)。

整個模型的另一個問題是如何處理只有舊票的事情。如果什麼東西只有喜歡,但所有的喜歡都是舊的呢?它會註冊爲不太喜歡,因爲所有喜歡已經退化。