4

所以我正在尝试使用 Apache Spark 对时间序列数据进行功耗预测。数据样本为:

03.01.15;22:30;236,25
03.01.15;22:15;240
04.01.15;16:00;243,775

以此类推两年。我每 15 分钟有一次观察

预测功耗的最佳方法是什么?

我尝试LinearRegressionDecision 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但我不明白我为什么需要它。

有人可以描述对时间序列数据进行良好预测的过程吗?最后我想输入一个日期和时间并得到一个预测。

4

1 回答 1

0

我对您的问题有多个问题,但让我尝试使用您给我的内容。

首先,让我们概括一下这个问题。

您有表单中的数据<timestamp>, <value>。鉴于数据在 2 年内每 15 分钟收集一次,您的样本大小为 (4 x 24 x 365 x 2) 70080 个观测值(行)

假设您想开发一个回归模型来预测其行为。

首先,您需要将数据集划分为训练集和测试集。您使用训练集开发模型并在测试集上测试模型。我建议 9:1 拆分。

Q1。这是你采取的那种方法吗?

MSE 是使用预测值与测试集中的实际值进行计算的。

Q2。您提到了一个 MSE - 我不知道这是如何计算的(仅提供了 3 个数据点)或您正在使用的值的范围。您能否确认您的错误是如何计算的以及最小化标准是什么?

如果线性回归失败(无法成功预测运动),可能是您的模型过于简单 - 尝试使用 MLP 或将回归模型与贝叶斯模型结合(因为功耗是连续函数)。

于 2017-03-31T14:01:29.040 回答