因此我尝试使用Apache Spark进行时间序列数据的功耗预测。数据样本是:
03.01.15;22:30;236,25
03.01.15;22:15;240
04.01.15;16:00;243,775
等等两年。我每15分钟观察一次
预测功耗的最佳方法是什么?
我尝试LinearRegression
,Decision trees
等等。我总是得到巨大的MSE(788)。
我尝试将月,日,小时,分钟作为OneHotEncoder
。我尝试只做几周的预测等。
数据的方式year
,month
,day
:
[2014.3996710526321,5.726973684210525,15.713815789473673]
数据的变化year
,month
,day
:
[0.2403293809070049,10.218579294199253,77.46326844706495]
测试均方误差
788.2397552290726
如果我像LabeledPoint(236.25, 2015.0,1.0,3.0,22.0,30.0))
那样直接传递值,则MSE会升至1280.8
。如果我传递给模型,那么每天只有一次观察,这是最大值,这对它没有帮助。
但是如果我使用KNIME
并尝试时间序列的例子,但是我的数据并没有考虑日期和时间,而是他们滞后于每次观察的功耗。
我看到Cloudera有Time Series
的库,但我不明白为什么需要它。
有人可以描述对时间序列数据进行良好预测的过程吗?最后,我想输入日期和时间并进行预测。
答案 0 :(得分:0)
我对您的问题有多个问题,但让我尝试使用您给我的内容。
首先,让我们概括一下这个问题。
您的数据格式为<timestamp>, <value>
。鉴于数据每15分钟收集2年,您的样本大小为(4 x 24 x 365 x 2) 70080 观察(行)
让我们说你想开发一个回归模型来预测它的行为。
首先,您需要将数据集划分为训练和测试集。您使用训练集开发模型,并在测试集上测试模型。我会建议9:1分裂。
<强> Q1。这是你采取的那种方法吗?
使用预测值与测试集中的实际值计算MSE。
<强> Q2。你提到了一个MSE - 我不知道如何计算(只提供3个数据点)或你正在使用的值范围。您能否确认您的错误计算方式以及最小化标准是什么?
如果线性回归失败(无法成功预测运动),则可能是您的模型过于简单 - 尝试使用MLP或将回归模型与贝叶斯模型相结合(因为功耗是连续函数)。