【发布时间】:2021-07-20 14:35:40
【问题描述】:
当我想使用 inverse_transform 转换回原始形式时,我收到以下错误:
X_train = []
y_train = []
for i in range(120, data_training.shape[0]):
X_train.append(data_training[i-120:i])
y_train.append(data_training[i,0])
X_train , y_train = np.array(X_train) , np.array(y_train)
X_train.shape , y_train.shape
((5377, 120, 15), (5377,))
train_pred=scaler.inverse_transform(train_pred) #error
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-44-2819933dc538> in <module>()
1 #Transformback to original form
----> 2 train_pred=scaler.inverse_transform(train_pred)
/usr/local/lib/python3.7/dist-packages/sklearn/preprocessing/_data.py in inverse_transform(self, X)
434 force_all_finite="allow-nan")
435
--> 436 X -= self.min_
437 X /= self.scale_
438 return X
ValueError: non-broadcastable output operand with shape (5377,1) doesn't match the broadcast shape (5377,15)
我刚开始接触人工智能,不明白这个错误是什么意思。
有人能解释一下这是什么意思以及如何解决吗?
【问题讨论】:
-
我发现了类似的问题已经回答。 see
-
我没有看到任何定义
scaler或train_pred的内容。sklearnScaler.inverse_transform需要二维输入(n_samples, n_features)。我猜在标量设置和train_pred之间features的数量不匹配。