为了查找趋势主题,我将标准分数与移动平均数结合使用:

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

(Thank you very much, Nixuz)
到目前为止,我的做法如下:
不管是什么时候,对于历史趋势,我只需回到24小时前。假设我们现在有1月12日下午3:45:
当前趋势=点击率[1月11日,3:45-1月12日,3:45]
历史趋势=点击率[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点开始,不是更好吗例如,对于相同的数据(下午3:45):
当前趋势=点击率[1月11日,0:00-1月12日,0:00]
历史趋势=点击次数[1月10日,0:00-1月11日,0:00]+点击次数[1月9日,0:00-1月10日,0:00]+点击次数[1月9日,0:00-1月9日,0:0]+。。。
我相信结果会有所不同但哪种方法能给你更好的结果呢?
我希望你理解我的问题,你能帮助我:)提前谢谢!

最佳答案

我认为,你可能看到的问题,你目前的实施是,23小时前的热门话题正在影响你的排名。我看到你新提议的实现的问题是,你在午夜把板子擦干净了,所以昨晚晚些时候很热门的话题在第二天一大早就不会很热门了(但它们应该如此)。
我建议你考虑实现一个digg风格的算法,其中一个主题的热度随着年龄的增长而衰减。你可以通过计算过去24小时每个时段的点击率/小时数,然后将每个时段的得分除以该时段发生的前几个小时。把24节课加起来得到分数。
热度=(24/24分)+(23/23分)+…+(分数2/2)+分数1
其中score24是一个主题在24小时前的一小时内获得的“点击”次数(可能不是准确的点击次数,而是该小时的标准化得分)。
这样,24小时前热门的主题仍然会被计算在算法中,但不会像一小时前热门的主题那么重要。

关于algorithm - 标准分数的时间表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1003162/

10-15 01:17