首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >绘制回归任务中的多维真数组和预测数组

绘制回归任务中的多维真数组和预测数组
EN

Stack Overflow用户
提问于 2021-12-20 04:39:49
回答 1查看 186关注 0票数 2

在使用LSTM (单变量LSTM)预测未来1小时电力负荷的回归任务中,可以很容易地绘制如下的结果:

代码语言:javascript
复制
plt.plot(y_ts, label='True Future', color='blue')
plt.plot(y_pred, label='Forecast', color='red')
plt.show()

这是因为y_tsy_pred都是一维的。现在,假设任务已经改变,用LSTM预测未来6小时的电力负荷。这意味着y_tsy_pred将出现在2D中,例如y_ts= (3454, 6)y_pred= (3454, 6)如何绘制高维数组的这种情况?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-21 05:27:01

从根本上说,你的数据中只有一个维度,即时间;你拥有的是6个时间切片--把它们相加在一起,在相同的轴上绘制图,并分别标记每一个小时都是有意义的。

让我用一些捏造的数据来解释这一点:

代码语言:javascript
复制
import numpy as np
from matplotlib import pyplot as plt

np.random.seed(42)

n, h = 3454, 6
y_ts, y_pred = np.random.randn(n, h).cumsum(), np.random.randn(n, h).cumsum()
y_ts = y_ts - np.min(y_ts)
y_pred = y_ts - (y_pred - np.min(y_pred)) / np.max(y_pred) * 0.05 * np.mean(y_ts)
y_ts = y_ts.reshape((n, h), order="F")
y_pred = y_pred.reshape((n, h), order="F")

单独绘制y_ts (类似于y_pred):

代码语言:javascript
复制
for i in range(h):
    plt.plot(y_ts[:, i], label=f'y_ts_h{i+1}')

plt.legend()
plt.show()

现在,您可以整理数据并将其绘制为一维系列,如下所示:

代码语言:javascript
复制
y_ts = y_ts.reshape((n*h), order="F")
y_pred = y_pred.reshape((n*h), order="F")
plt.plot(y_ts, label=f'y_ts')
plt.plot(y_pred, label=f'y_pred')

for i in range(h):
    plt.axvline(x=(n*(i+1)), c='m')

plt.xticks([(i+1)*n for i in range(h)], [f'hr_{i+1}' for i in range(h)])
plt.legend()
plt.show()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70417445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档