如何使时间数据具有周期性以进行预测?
有许多方法可以处理时间数据。有时人们可以将其用作时间序列,以考虑可能的趋势。有时这是不可能的,因为不能按时间顺序安排时间。例如,如果一个月中的数据集中只有工作日(1到7)。在这种情况下,可以使用单热编码。但是,考虑一天中的几分钟或几秒钟,一次热编码可能会导致高度复杂。另一种方法是使时间循环。这种方法导致较低的维度和(也许)更好的预测能力。
但是循环时间是什么意思?
循环时间是一个假设时间为圆的概念。星期日12:00午夜与星期一0:00相同。上一年的最后一秒的结束与下一年的第一秒的开始等相同。可以通过交叉验证或与目标特征的相关性来证明此方法是否合适。
如何使数据具有周期性?
在许多博客文章中,建议使用正弦函数。例如,对于七个工作日,例如(蓝色):
值= sin(2π* time / 7)
或一周内从零到零(绿色):
值= sin(2π* time / 14)
或一周中的两个周期(红色):
值= sin(2π*时间/3.5)
让我们看一下函数“值”:
人物创建由wzgrapher
但是在特定时间段内有多少个周期?
这要看情况-和数据。如果有扎实的理论,为什么必须要有2、4或8个循环;完善。然而,必须检查多少个周期是合适的。
此外,尚不清楚循环何时开始。如果在周一,周日或周六是一周...?
一个好主意是改变周期(周)的开始(分别是结束)。例如,将星期六定为一周的第一天。(不要忘了验证哪个班次最好)
现在,让我介绍一种替代方法,该方法有时会比正弦函数产生更好的结果。
从三维函数开始:
周期=时间^ 2 +值^ 2
解决“价值”:
值=(周期-时间^ 2)^ 0.5
让我们通过将周期设置为等于1 =红色,2 =蓝色,3 =绿色来查看“值” :
wzgrapher创建的图
此功能具有两个重要功能:
1)直径由“循环”决定
2)半径为直径/ 2的圆
因此,要将功能调整到七个工作日,必须找到七个直径:
0 =(周期-时间^ 2)^ 0.5
(因为直径是值= 0时的宽度)
现在解决它以“循环”:
周期=时间^ 2
关于半径=直径/ 2,我们必须将时间设置为(max_time)/2。 注意:(max_time)/ 2 =半径。对于7/2的工作日:
周期=半径^ 2
此外,必须将函数右移-半径右移:
value_cyc =(半径^ 2-(半径-时间)^ 2)^ 0.5
现在,让我们看一下七个工作日1至7 (红色)中的 “ value_cyc”函数。为了与提到的正弦函数比较(蓝色)
value_sin = sin(2π* time / 14)* 3.5
被添加:
wzgrapher创建的图
区别在于斜率。函数“ value_cyc”以更大的增量开始,从而导致该周期开始和结束时的值更高。这种效应使得周围类似时期的中心成果,并区分更从一开始和结束宣判中心-相比,“value_sin”。
请注意,使数据具有周期性并非总是一个好主意。如果期间的长度不一样(例如,月日),请小心!

关注 CDA人工智能学院 ,回复“录播”获取更多人工智能精选直播视频!