【问题标题】:operands could not be broadcast together with shapes error in MinMaxScaler操作数无法与 MinMaxScaler 中的形状错误一起广播
【发布时间】:2022-09-24 15:10:37
【问题描述】:

我正在 Python 中开发一个预测模型,基于从 2010 年 q-1 开始的前 45 个季度的历史数据。我正在使用 LSTM 进行预测。在尝试实现以下行时:

y_perd_future = scaler.inverse_transform(forecast_copies)[:,0]
X = X.copy()
    936             if self.with_std: 
    937                 X *= self.scale_
    938             if self.with_mean:
    939                 X += self.mean_

 ValueError: operands could not be broadcast together with shapes (31,630,3) (32,) (31,630,3) 

请不要给我小自创数组的例子。我正在寻找大数据背景下的建议。

谦虚的问候

  • 你能更准确地说明它到底在哪里失败了吗?此外,对于这个例子来说,数组的大小并不重要,只是让它们在形状上对齐。
  • 亲爱的西蒙,它在 \"y_perd_future = scaler.inverse_transform(forecast_copies)[:,0]\" 代码行失败,或者换句话说,当我尝试对预测值进行逆变换时。

标签: python pandas lstm


【解决方案1】:

我认为问题在于一个张量有 31 个元素 (31, 630, 3),而另一个 32 (32,) 则无法广播。至少一个维度必须匹配。

【讨论】:

  • 亲爱的弗拉维奥,感谢您的回答。我在如何匹配这些数组方面非常努力。请指导我,我是多元时间序列分析的新手
【解决方案2】:

我认为问题是首先缩放的,
首先总是分别缩放、目标和特征
我总是先缩放自变量,然后再缩放目标变量,
我不知道为什么,但 MinMaxscaler 或任何缩放技术都会考虑最后缩放的内容。
预测后,您可以使用inverse_transform 来回。

pressure = scaler.inverse_transform(y_train_pred_lr.values.reshape(-1,1))
print(pressure)

更好地分别缩放目标和特征,在自变量之后缩放目标 希望这可以解决您的问题,如果可以,请告诉我。

如果您先缩放功能并稍后缩放目标,这会给您广播错误

【讨论】:

    【解决方案3】:

    最好使用两个不同的缩放实例,例如,“scaler”用于自变量,“scaler1”用于因变量,即目标变量。

    【讨论】:

      猜你喜欢
      • 2019-09-01
      • 1970-01-01
      • 2015-05-18
      • 2018-02-28
      • 1970-01-01
      • 2017-09-09
      • 2020-09-06
      • 2012-10-31
      • 2013-04-07
      相关资源
      最近更新 更多