澄清@丹·蓋茨,並添加@collapsar答案,我會加入以下內容:
丹的公式是正確的:
(score1 * weight1 + ... + scoreN * weightN)/(weight1 + ... + weightN)
加權平均的優點是你可以選擇重量!
所以我們選擇第一條消息以來的天數作爲權重。所以我會選擇一些數據並顯示它是如何工作的。在所有情況下,簡單的平均值是5.0。
首先我們來看看隨着時間的推移而增加的評分。
Date[0]: May 6 Rating[0]: 1 Weight[0]: 0
Date[1]: May 7 Rating[1]: 3 Weight[1]: 1
Date[2]: May 8 Rating[2]: 5 Weight[2]: 2
Date[3]: May 9 Rating[3]: 7 Weight[3]: 3
Date[4]: May 10 Rating[4]: 9 Weight[4]: 4
這樣來計算權重:
Weight[i] = Date[i] - Date[0]
爲了計算平均
(Rating[0]*Weight[0] + Rating[1]*Weight[1] + ... + Rating[N]*Weight[N])/
(Weight[0] + Weight[1] + ... + Weight[N])
計算:
(1*0 + 3*1 + 5*2 + 7*3 + 9*4)/(0 + 1 + 2 + 3 + 4) = (0+3+10+21+36)/10 = 7.0
同樣已經隨着時間的推移下降的評級:
Date[0]: May 6 Rating[0]: 9 Weight[0]: 0
Date[1]: May 7 Rating[1]: 7 Weight[1]: 1
Date[2]: May 8 Rating[2]: 5 Weight[2]: 2
Date[3]: May 9 Rating[3]: 3 Weight[3]: 3
Date[4]: May 10 Rating[4]: 1 Weight[4]: 4
計算將是:
(9*0 + 7*1 + 5*2 + 3*3 + 1*4)/(0 + 1 + 2 + 3 + 4) = (0+7+10+9+4)/10 = 3.0
我選擇重量使得較大的權重對應我想有更多的重量的收視率。
考慮最近一次審查的時間戳作爲「存在」的權重。 – collapsar
你只是給分子加權,重量分母也是如此。或者你不是在做一個平均的? –
@DanGetz,我看不出如何解決這個問題。但是,是的,我做的是平均水平。 – user2990084