gpt4 book ai didi

algorithm - 了解衡量趋势的算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:19:02 25 4
gpt4 key购买 nike

this Hadoop tutorialhive_trend_mapper.py 程序中使用的公式背后的基本原理是什么?关于计算维基百科趋势?

实际上有两个组成部分:每月趋势和每日趋势。我将重点关注每日趋势,但类似的问题也适用于每月趋势。

日趋势中,pageviews是这个topic每天的浏览量数组,每天一个元素,total_pageviews是这个数组的总和:

# pageviews for most recent day
y2 = pageviews[-1]
# pageviews for previous day
y1 = pageviews[-2]
# Simple baseline trend algorithm
slope = y2 - y1
trend = slope * log(1.0 +int(total_pageviews))
error = 1.0/sqrt(int(total_pageviews))
return trend, error

我从表面上知道它在做什么:它只是查看过去一天的变化(斜率),并将其扩展到 1+total_pageviews 的日志( log(1)==0,所以这个比例因子是非负的)。它可以看作是将一个月的总浏览量视为一个权重,但随着它的增长而缓和——这样,总浏览量不再对“足够受欢迎”的事物产生影响,但同时对微不足道的事物产生重大变化不要称重那么多。

但是为什么要这样做?为什么我们要打折最初不受欢迎的东西?对于那些持续流行度较低的项目,大增量不应该更多,而对于已经很受欢迎的项目,较少(大增量可能落在一小部分之内)标准偏差)?作为一个稻草人,为什么不简单地使用 y2-y1 并完成它呢?

error 有什么用?本教程并没有真正有意义地再次使用它。不过,它也没有告诉我们如何使用 trend - 这是最终产品中绘制的内容,对吗?

我在哪里可以阅读该理论的(最好是介绍性的)背景知识?这种疯狂有名字吗?这是某处的教科书公式吗?

提前感谢您的任何回答(或讨论!)。

最佳答案

正如在线评论所说,这是一个简单的“基线趋势算法”,这基本上意味着在你比较两个不同页面的趋势之前,你必须建立一个基线。在许多情况下,使用平均值,如果你根据时间轴绘制综合浏览量。该方法广泛应用于监控水质、空气污染物等,以检测相对于基线的任何显着变化。

在 OP 的例子中,页面浏览量的斜率由总页面浏览量的日志加权。这种排序使用总页面浏览量作为斜率的基线校正。正如西蒙所说,这平衡了在总页面浏览量非常不同的两个页面之间。例如,A 在总浏览量 1000,000 上的斜率为 500,B 在 1,000 上的斜率为 1000。日志基本上意味着 1000,000 只比 1,000 重要两倍(而不是 1000 倍)。如果只考虑斜率,A 不如 B 受欢迎。但是加上一个权重,现在衡量A和B的受欢迎程度是一样的。我觉得很直观:虽然A的pageviews只有500 pageviews,但那是因为它已经饱和了,你还是要给它足够的信任。

至于错误,我相信它来自(相对)standard error ,它有一个因子 1/sqrt(n),其中n 是数据点的数量。在代码中,误差等于 (1/sqrt(n))*(1/sqrt(mean))。大致翻译为:数据点越多,趋势越准确。我没看到这是一个精确的数学公式,只是一个粗略的趋势分析算法,反正相对在这种情况下,值(value)更为重要。

总而言之,我认为这只是一个经验公式。更高级的主题可以在一些生物统计学教科书中找到(非常类似于监测流感的爆发等。)

关于algorithm - 了解衡量趋势的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1635703/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com