0

为了寻找热门话题,我将标准分数与移动平均线结合使用:

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

(非常感谢你,尼克斯)

到目前为止,我这样做如下:

无论什么时候,对于历史趋势,我只是 24 小时返回。假设我们现在有 1 月 12 日下午 3:45:

current_trend = 点击 [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:00 点开始不是更好吗?例如,对于相同的数据(下午 3 点 45 分)以这种方式:

current_trend = 点击 [Jan 11, 0:00 - Jan 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] + ...

我相信结果会有所不同。但是哪种方法会给您带来更好的结果?

我希望你已经理解我的问题,你可以帮助我。:) 提前致谢!

4

1 回答 1

1

我认为您当前的实施可能会遇到的问题是 23 小时前的热门话题现在正在影响您的排名。我在您提出的新实施方案中看到的问题是,您在午夜擦掉了石板,所以昨晚很热的话题在第二天早上似乎不会很热(但它们应该如此)。

我建议你考虑实现一个 Digg 风格的算法,其中主题的热度随着年龄的增长而衰减。您可以通过计算过去 24 小时内每个时间段的点击次数/小时数,然后将每个时间段分数除以该时间段发生的小时数来做到这一点。将 24 个时段相加得到分数。

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

其中 score24 是主题在 24 小时前发生的一小时内获得的“点击”数(可能不是准确的点击数,而是该小时的标准化分数)。

这样,24 小时前的热门话题仍会计入您的算法中,但不会像一小时前的热门话题那么重。

于 2009-06-16T20:10:18.953 回答