2009-06-16 24 views
0

爲了找到熱門話題,我用的是標準分結合移動平均線:時限標準分

z-score = ([current trend] - [average historic trends])/[standard deviation of historic trends] 

(Thank you very much, Nixuz)

到現在爲止,我做如下:

無論時間如何,對於歷史潮流,我只需回顧24小時。假設我們1月12日,現在下午3:45:

current_trend =命中[1月11日,3:45 - 1月12日,3:45]

historic_trends =命中[1月10日,3:45 - 1月11日,3:45] +點擊[1月9日,3:45 - 1月10日,3:45] +點擊[1月8日,3:45 - 1月9日,3:45] + ...

但是這真的足夠嗎?如果我始終在00:00開始,不是更好嗎?例如這種方式對於相同的數據(下午3點45分):

current_trend =命中[年01月11,0:00 - 1月12日,0:00]

historic_trends =命中[年01月10 0:00 - 1月11日,0點] +點擊[1月9日,0點 - 1月10日,0點] +點擊[1月9日,0:00 - 1月9日,0:0] + ...

我相信結果會有所不同。但是哪種方法會給你更好的結果?

我希望你已經理解我的問題,你可以幫助我。 :) 提前致謝!

回答

1

我認爲您目前的實施可能會遇到的問題是,23小時前很熱的話題正在影響您的排名。我在新提出的實施方案中看到的問題是,您在午夜清理板岩,因此昨晚深夜的熱點在第二天早上似乎不會很熱(但他們應該)。

我建議你看看實施Digg-style algorithm(抱歉連接到Digg)主題的熱度隨着年齡衰減。您可以通過計算每個過去24小時時段的點擊次數/小時數來實現此目的,然後將每個時段分數除以期間發生的時間。加上24個時期來得分。

hottness =(score24/24)+(score23/23)+ ... +(score2/2)+ score1

哪裏score24是 「命中」,一個主題中的單拿到的數量24小時前發生的小時期(可能不是完全命中,但是該小時的歸一化分數)。

這種24小時前很熱的話題仍然會算在你的算法中,但並不像一小時前熱門的話題那麼嚴重。

+0

謝謝比爾蜥蜴,這個提示。我不知道這個簡單的算法,但它非常酷。不幸的是,它不適合我的目的,即找到熱門話題。我的算法過濾出總是很熱的話題。你的算法沒有那個,是嗎? ;)但它對我來說非常有用,因爲我也過濾了趨勢鏈接。爲此,它很有用。 但是你關於我的算法和時間段的例子非常好。那麼你是否推薦了第一種方法(簡單地回到24小時,而不是從0:00開始)? – caw 2009-06-17 17:15:10