首页 > 解决方案 > 时间序列预测的逆变换

问题描述

我有一个能源消耗的时间序列数据。数据分为集合trainingtest2011-05-01训练集有从到的每日数据2018-12-30。测试集的数据从2019-02-012019-12-30。这两个集合都在两个单独的 pandas 数据框中。

为了使 TS 静止,我应用了这个变换:

train["energy_val"] = train["energy_val"].apply(np.log)
train["energy_val"] = train["energy_val"].diff()
train = train.dropna()

我在其上训练了一个模型,预测范围为 30 天,并得到了测试集的预测。

测试预测如下所示:

    date        energy_val 
0   2019-02-01  -0.89123
1   2019-02-02  0.86733
2   2019-02-04  0.32456
3   2019-02-05  -0.51421

...

如何反转测试集的变换?对于测试集,我不知道prior应该使用什么值undiff

标签: pythonpandasmachine-learningtime-seriesdata-transform

解决方案


假设您可以访问测试数据集的原始预期值,您可以使用第一个值开始计算“未差异”结果

starting_value = orig_test.loc["energy_val", 0]
test.loc["energy_val", 0] += starting_value

test['undiffed'] = test['energy_val'].rolling(2).sum().shift(-1)

推荐阅读