像你上面那样修改之后还是报错Traceback (most recent call last): File "C:\Users\马斌\Desktop\cnn测试\cnn改.py", line 49, in <module> train_predict = scaler.inverse_transform(train_predict) File "D:\python\python3.9.5\pythonProject\venv\lib\site-packages\sklearn\preprocessing_data.py", line 541, in inverse_transform X -= self.min_ ValueError: non-broadcastable output operand with shape (110,1) doesn't match the broadcast shape (110,4)
时间: 2023-06-30 18:14:51 浏览: 99
根据错误提示,这个问题应该是由于逆归一化时的数据维度不匹配导致的。具体来说,scaler.inverse_transform(train_predict)的输出shape是(110,1),而原始数据的shape是(110,4),因此无法进行逆归一化操作。
解决方法是,将逆归一化时的数据转换成与原始数据shape相同的形式。可以使用numpy的tile函数将逆归一化的数据复制4次,扩展为(110,4)的形式,然后再进行逆归一化操作。
示例代码如下:
```python
train_predict = scaler.inverse_transform(train_predict)
y_train = scaler.inverse_transform([y_train])
train_predict = np.tile(train_predict, (1, 4)) #将train_predict复制4次,变为(110,4)
train_predict = scaler.inverse_transform(train_predict) #进行逆归一化操作
y_train = np.tile(y_train, (1, 4)) #将y_train复制4次,变为(1, 440)
y_train = scaler.inverse_transform(y_train.T) #进行逆归一化操作,并将结果reshape为(110,4)
```
阅读全文