基本速度算法?

时间:2011-06-04 01:35:49

标签: algorithm computer-science

给出我网站上单篇文章的以下数据集:

Article 1
2/1/2010 100
2/2/2010 80
2/3/2010 60

Article 2
2/1/2010 20000
2/2/2010 25000
2/3/2010 23000

其中第1列是日期,第2列是文章的综合浏览量。什么是基本速度计算,可以确定此文章在最近3天内是向上还是向下趋势?

警告,文章不会知道浏览量总数只有他们自己的总数。理想情况下,数字介于0和1之间。任何指向此类算法的指针都会出现?

谢谢!

3 个答案:

答案 0 :(得分:3)

更新:您的数据实际已经一个速度列表(网页浏览量/天)。以下答案仅显示如何查找过去三天的平均速度。请参阅我的other answer了解如何计算网页浏览加速度,这是您可能正在寻找的真实统计数据。

速度只是值(delta浏览量)随时间的变化:

2010年2月3日第1条:

delta pageviews = 100 + 80 + 60 
                = 240 pageviews
delta time = 3 days

pageview velocity (over last three days) = [delta pageviews] / [delta time]
                                         = 240               / 3
                                         = 80 pageviews/day

2010年2月3日第2条:

delta pageviews = 20000 + 25000 + 23000 
                = 68000 pageviews
delta time = 3 days

pageview velocity (over last three days) = [delta pageviews] / [delta time] 
                                         = 68,000             / 3
                                         = 22,666 + 2/3 pageviews/day

现在我们知道最大速度,我们可以缩放所有速度以获得0到1之间(或0%到100%之间)的相对速度:

relative pageview velocity of article 1 = velocity / MAX_VELOCITY
                                        = 240      / (22,666 + 2/3)
                                        ~ 0.0105882353
                                        ~ 1.05882353%

relative pageview velocity of article 2 = velocity      / MAX_VELOCITY
                                        = (22,666 + 2/3)/(22,666 + 2/3)
                                        = 1
                                        = 100%

答案 1 :(得分:1)

“Pageview趋势”可能是指网页浏览加速,而不是速度。您的数据集实际已经一个速度列表(综合浏览量/天)。网页浏览量是非递减值,因此网页浏览速度永远不会为负数。下面介绍如何计算网页浏览加速,这可能是负面的。

PV_acceleration(t1,t2) = (PV_velocity{t2} - PV_velocity{t1}) / (t2 - t1)
("PV" == "Pageview")

<强>说明: 加速度只是速度的变化除以时间的变化。由于您的数据集是页面查看速度列表,因此您可以将它们直接插入公式:

PV_acceleration("2/1/2010", "2/3/2010") = (60 - 100) / ("2/3/2010" - "2/1/2010")
                                        = -40        / 2
                                        = -20 pageviews per day per day

请注意,未使用“2/2/2010”的数据。另一种方法是计算三个PV_accelerations(使用仅返回一天的日期范围)并对它们求平均值。您的示例中没有足够的数据可以在三天内执行此操作,但过去两天的操作方法如下:

PV_acceleration("2/3/2010", "2/2/2010") = (60 - 80) / ("2/3/2010" - "2/2/2010")
                                        = -20        / 1
                                        = -20 pageviews per day per day

PV_acceleration("2/2/2010", "2/1/2010") = (80 - 100) / ("2/2/2010" - "2/1/2010")
                                        = -20        / 1
                                        = -20 pageviews per day per day

PV_acceleration_average("2/3/2010", "2/2/2010") = -20 + -20 / 2
                                                = -20 pageviews per day per day

这种替代方法对第1条数据没有影响,因为页面视图加速度在两天之间没有变化,但它会对第2条产生影响。

答案 2 :(得分:0)

只是指向一篇关于'趋势'算法reddit,SU和HN等用途的文章的链接。