繁体   English   中英

操作数无法与 MinMaxScaler 中的形状错误一起广播

[英]operands could not be broadcast together with shapes error in MinMaxScaler

我正在基于从 2010 年第 1 季度开始的前 45 个季度的历史数据用 Python 开发一个预测模型。我正在使用 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) 

请不要给我小的自创阵列的例子。 我正在寻找有关大数据的建议。

谨致问候

我找到了最简单的解决方案,为目标变量和其他独立变量实例化两个缩放器,简单。

feature = X_train.columns<br>
xscaler = MinMaxScaler()<br>
X_train[feature] = xscaler.fit_transform(X_train[feature])<br>
X_val[feature] = xscaler.transform(X_val[feature])<br>
X_test[feature] = xscaler.transform(X_test[feature])<br>

yscaler = MinMaxScaler()<br>
y_train = yscaler.fit_transform(y_train.values.reshape(-1,1))<br>
y_val = yscaler.transform(y_val.values.reshape(-1,1))

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

我认为问题是首先缩放什么,首先总是分别缩放、目标和特征我总是先缩放自变量,然后再缩放目标变量,我不知道为什么,但是 MinMaxscaler 或任何缩放技术都会考虑到什么最后缩放。 预测后,您可以使用 inverse_transform 来回。 pressure = scaler.inverse_transform(y_train_pred_lr.values.reshape(-1,1)) print(pressure) 最好分别缩放目标和特征,在自变量之后缩放目标希望这能解决您的问题,如果可以,请告诉我。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM