首页 文章

Spark上的时间序列预测

提问于
浏览
2

因此,我尝试使用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 传递 . 我尝试只做几周的预测等 .

数据的均值 yearmonthday

[2014.3996710526321,5.726973684210525,15.713815789473673]

数据的差异 yearmonthday

[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 的库,但我不明白我为什么需要它 .

有人能描述对时间序列数据进行良好预测的过程吗?最后,我想输入日期和时间并进行预测 .

1 回答

  • 0

    我对你的问题有很多疑问,但让我试着用你给我的东西来处理 .

    First, let's generalise the problem.

    您的数据格式为 <timestamp>, <value> . 鉴于数据每15分钟收集2年,您的样本大小为(4 x 24 x 365 x 2)70080次观察(行)

    而且假设你想开发一个回归模型来预测它的行为 .

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

    Q1. Is this the kind of approach you have taken?

    使用预测值与测试集中的实际值计算MSE .

    Q2. You mention an MSE - I have no idea how this was calculated (only 3 data points provided) or the range of values you are working with. Can you please affirm how your error is calculated and what the minimization criteria is?

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

相关问题