登录
首页 >  Golang >  Go问答

使用重叠在 0 到 100 之间缩放的两个集合之间进行转换

来源:stackoverflow

时间:2024-04-18 20:36:35 310浏览 收藏

从现在开始,我们要努力学习啦!今天我给大家带来《使用重叠在 0 到 100 之间缩放的两个集合之间进行转换》,感兴趣的朋友请继续看下去吧!下文中的内容我们主要会涉及到等等知识点,如果在阅读本文过程中有遇到不清楚的地方,欢迎留言呀!我们一起讨论,一起学习!

问题内容

我正在尝试扩展每 10 分钟按分钟接收的 Google 趋势数据。如果您不熟悉 Google 趋势,则每个响应都会根据当前响应的最小值和最大值在 0 到 100 之间缩放。因此,对于不同但重叠的时间间隔的两个不同请求可以在同一时间具有不同的值(即,4:30-5:30 的请求和 5-6 的请求可能具有不同的 5 值)。

我试图做的是相对于我收集趋势数据的前 4 小时间隔缩放所有值。每 10 分钟,就会收集一个新的 4h 块,这意味着大部分时间将与前一个块重叠。是否可以利用这种重叠来缩放相对于第一个间隔的所有新值?

注意:新值> 100就可以了


正确答案


假设您最初的四小时窗口和经过扩展过程的任何数据都是“良好”。

假设我们的良好数据在时间 T 结束,并且我们有一个新的 4 小时数据窗口,在时间 T+10 结束。

新窗口中的数据与良好数据之间的唯一区别是缩放因子。新窗口与良好数据相同的每一分钟都可以对我们需要使新数据变得“良好”的缩放因子进行投票:缩放因子=(良好值)/(新值)。

通常情况下,我会使用投票中位数来表示类似的情况,但由于数据非常粗糙,因此您面临着数据中存在“悬崖”的风险,特别是中位数可能紧邻显着更大或更小的数字。因此,我建议通过消除两个方向上的 k 个异常值,然后取剩余选票的平均值来生成选票的比例因子。

如果您想要更多选票,您可以从不相邻的 4 小时区块中获得它们(尽管回报显然有限)。

--- 示例 ---

假设在初始窗口中,峰值搜索为 1000。这意味着该窗口的缩放因子为 0.10,这将导致 Google 向我们显示的峰值搜索为 100。

在下一个窗口中,我们有一个新的峰值 2000。现在,这些峰值对我们来说是不可见的,但我们确实看到的是,两个窗口中存在的每个点的值都是新窗口中的值的一半旧窗户。由于投票(如上所述)是(好值)/(新值),因此我们有一堆接近 2.0 的投票(由于粗糙度和舍入,接近并不精确)。

因此,我们将 10 个新值分别乘以 2.0,将它们转换为合适的比例。零值不会改变,因为无论规模如何,没有搜索就是没有搜索。

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>