ValueError Traceback (most recent call last) <ipython-input-30-d25079d1d820> in <module> 4 5 # 反归一化数据 ----> 6 train_predict = denormalize_data(train_predict, scaler) 7 test_predict = denormalize_data(test_predict, scaler) 8 <ipython-input-25-e9e3279400dd> in denormalize_data(scaled_data, scaler) 18 # 反归一化数据 19 def denormalize_data(scaled_data, scaler): ---> 20 data = scaler.inverse_transform(scaled_data) 21 return data 22 # 创建数据集 j解决上面代码吗出现的问题D:\ruanjian\ana\ana3\envs\tensorflow\lib\site-packages\sklearn\preprocessing\_data.py in inverse_transform(self, X) 459 force_all_finite="allow-nan") 460 --> 461 X -= self.min_ 462 X /= self.scale_ 463 return X ValueError: operands could not be broadcast together with shapes (253,2) (7,) (253,2)
时间: 2024-02-14 22:28:05 浏览: 380
基于yolov5的旋转目标检测yolov5-obb-master.zip
这个错误是由于归一化和反归一化的数据维度不匹配导致的。在反归一化数据时,需要传入与归一化时使用的`scaler`对象相同的形状。根据错误信息,发现在反归一化过程中存在问题。
请将以下代码替换到你的程序中,以解决这个问题:
```python
# 反归一化数据
train_predict = denormalize_data(train_predict, scaler)
test_predict = denormalize_data(test_predict, scaler)
# 反归一化函数
def denormalize_data(scaled_data, scaler):
data_shape = scaled_data.shape[0]
data = np.zeros((data_shape, scaler.data_range_.shape[0]))
data[:, 0] = scaled_data[:, 0] * scaler.data_range_[0] + scaler.data_min_[0]
return data
```
这段代码会将归一化后的数据还原成原始数据。请确保将这段代码放在`denormalize_data`函数定义之前,并且在调用`denormalize_data`函数时使用新定义的函数。
希望这次能够解决你的问题。如果还有其他疑问,请随时提出。
阅读全文