我正在尝试将LSTM网络安装到数据集中。
我有以下数据集:
0 17.6 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0
1 38.2 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0
2 39.4 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0
3 38.7 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0
4 39.7 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0
... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
17539 56.9 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0
17540 51.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0
17541 46.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0
17542 44.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0
17543 40.2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 1.0 0.0 0.0
27 28 29 30 31 32 33
0 0.0 0.0 1.0 0.0 0.0 1.0 0.0
1 0.0 0.0 1.0 0.0 0.0 1.0 0.0
2 0.0 0.0 1.0 0.0 0.0 1.0 0.0
3 0.0 0.0 1.0 0.0 0.0 1.0 0.0
4 0.0 0.0 1.0 0.0 0.0 1.0 0.0
... ... ... ... ... ... ... ...
17539 0.0 0.0 0.0 0.0 1.0 0.0 1.0
17540 0.0 0.0 0.0 0.0 1.0 0.0 1.0
17541 0.0 0.0 0.0 0.0 1.0 0.0 1.0
17542 0.0 0.0 0.0 0.0 1.0 0.0 1.0
17543 0.0 0.0 0.0 0.0 1.0 0.0 1.0形状:
[17544 rows x 34 columns]
然后我用MinMaxScaler进行缩放,如下所示:
scaler = MinMaxScaler(feature_range=(0,1))
data = scaler.fit_transform(data)然后,我使用一个函数来创建我的列车,用形状测试数据集:
X_train : (12232, 24, 34)
Y_train : (12232, 24)
X_test : (1708, 24, 34)
Y_test : (1708, 24)在拟合模型并预测测试集的值之后,我需要缩小到原始值,并执行以下操作:
test_predict = model.predict(X_test)
test_predict = scaler.inverse_transform(test_predict)
Y_test = scaler.inverse_transform(Y_test)但我得到了以下错误:
ValueError: operands could not be broadcast together with shapes (1708,24) (34,) (1708,24) 我该怎么解决呢?
发布于 2022-03-20 09:29:22
反变换要求数据形状与变换后产生的数据相同,即34列。test_predict不是这样,y_test也不是这样。
此外,虽然与您的错误无关,但是您正在犯一个错误,即先进行缩放,然后再分割以进行培训/测试,这不是正确的方法,因为它会导致数据泄漏。
以下是解决这一问题的必要步骤:
X_train和y_train,如我在this answer of mine中所示;您应该使用.fit_transform在这里使用H 212H 113将您的模型与转换后的X_train和y_train (附带注意:对于不同版本的数据使用不同的名称,而不是覆盖现有的数据)。H 216H 117使用测试数据和评估您的模型,首先从#2步骤中转换它们;您应该在这里使用.transform (而不是再次使用.fit_transform )。为了使您的预测恢复到原来的y_test的规模,您应该在它们上使用各自标量器的.inverse_transform。当然,不需要逆变换您转换的X_test和y_test --您已经有了这些值!https://stackoverflow.com/questions/71544858
复制相似问题