python - 时间序列预测的逆变换
问题描述
我有一个能源消耗的时间序列数据。数据分为集合training
和test
。2011-05-01
训练集有从到的每日数据2018-12-30
。测试集的数据从2019-02-01
到2019-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
。
解决方案
假设您可以访问测试数据集的原始预期值,您可以使用第一个值开始计算“未差异”结果:
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)
推荐阅读
- android - React Native-“未定义不是评估 this.props.navigation 的对象反应本机”
- javascript - 按属性查找数组对象 ID
- android - 如何像 Android Studio 一样用 pid 杀死进程?
- javascript - Owl Carousel - 只需一个点旋转木马幻灯片即可滑动多个旋转木马
- javascript - 如何在反应中查询firebase数据库?
- text - 由自定义点数据计算的簇圆中的 Mapbox GL 自定义文本
- json - Firebase API REST 无法使用 orderBy 过滤数据
- getorgchart - Microsoft Edge 中的展开/折叠级别不起作用。
- c# - ASP.NET Core 2.1 无效请求行问题
- python - 将 MySQL 数据库连接到 Google Assistant 的可能性