全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 数据分析与数据挖掘
3302 0
2022-03-30
有很多方法可以处理时间数据。有时可以将其用作时间序列来考虑可能的趋势。有时这是不可能的,因为时间不能按顺序排列。例如,如果几个月的数据集中只有工作日(1 到 7)。在这种情况下,可以使用 one-hot-encoding。但是,考虑到一天中的几分钟或几秒钟,一次热编码可能会导致高度复杂性。另一种方法是让时间循环。这种方法导致更低的维度和(也许)更好的预测能力。

但是周期时间是什么意思?


循环时间是一个假设时间是一个圆圈的概念。周日午夜 12:00 与周一凌晨 0:00 相同。上一年最后一秒的结束与下一年第一秒的开始等相同。这种方法是否合适可以通过交叉验证或与目标特征的相关性来证明。

如何让数据循环?

在许多博客文章中,建议使用正弦函数。例如,对于像(blue)这样的七个工作日:

值 = sin(2π*time/7)

或一周内从零到零(绿色):

值 = sin(2π*time/14)

或一周内的两个周期(红色):

值 = sin(2π*time/3.5)

让我们看一下函数“value”: 3834760051-1.jpeg

wzgrapher 创建的图

但是在特定时间段内有多少个周期?

这取决于案例和数据。如果有一个可靠的理论为什么必须有 2、4 或 8 个循环;完美的。然而,必须检查多少个周期是合适的。

此外,尚不清楚周期何时开始。如果是周一、周日或周六的一周……?

一个好主意是改变周期(周)的开始(分别是结束)。例如,将星期六设为一周的第一天。(不要忘记验证哪个班次最好)

现在,让我介绍一种替代方法,它有时会产生比正弦函数更好的结果。

从一个三维函数开始:

周期=时间^2+价值^2

解决“价值”:

值 = (周期 – 时间^2)^0.5

让我们通过将循环设置为one = red,two = blue ,three = green来查看“值” :
3834435703-1.jpeg

wzgrapher 创建的图

该功能有两个重要特点:

1) 直径由“周期”决定

2) 半径为直径/2的圆

因此,要将函数调整为七个工作日,必须找到直径为 7:

0 = (周期-时间^2)^0.5

(因为直径是值 = 0 时的宽度)

现在将其解决为“循环”:

周期=时间^2

关于半径 = 直径 / 2,我们必须设置时间 = (max_time) / 2。 注意:(max_time) / 2 = 半径。对于工作日 7/2:

循环 = 半径^2

此外,必须将函数右移到右半径:

value_cyc = (半径^2 - (半径 - 时间)^2)^0.5

现在让我们看一下 7 个工作日 1 到 7 (红色)的函数“value_cyc” 。为了将它与提到的正弦方法进行比较,函数(蓝色)

value_sin = sin(2π*time/14)*3.5

被添加: 3834777662-1.jpeg


wzgrapher 创建的图

不同之处在于斜率。函数“value_cyc”以更强的增长开始,这导致周期开始和结束时的值更高。与“value_sin”相比,这种效应使周期中心附近的结果相似,并使中心从开始和结束时更加明显。

请注意,使数据具有周期性并不总是一个好主意。如果期间的长度不同(例如月-日),请小心!


题库



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群