future = ['sin(h)', 'cos(h)', 'month', 'tmwindspeed', 'pressure', 'temperature'] scaler = MinMaxScaler() # 数据归一化,由于sin和cos本来就是-1到1,不用归一化 for col in future: if col not in ['sin(h)', 'cos(h)']: dataset[col] = scaler.fit_transform(dataset[col].values.reshape(-1, 1))使用此代码进行归一化,数据还原时需要reshape还是直接inverse_transform
时间: 2023-12-01 07:03:39 浏览: 50
python 实现对数据集的归一化的方法(0-1之间)
这段代码中使用了reshape将数据转化为二维数组进行归一化,因此在进行反归一化处理时,也需要使用相应的reshape进行还原。具体步骤如下:
1. 对预测结果进行反归一化处理,得到归一化前的预测结果。
```python
pred = model.predict(X_test)
pred = scaler.inverse_transform(pred.reshape(-1, 1))
```
2. 对原始数据集的目标列进行反归一化处理,得到归一化前的目标值。
```python
y_test = scaler.inverse_transform(y_test.reshape(-1, 1))
```
3. 对比预测结果和目标值,评估模型的预测效果。
```python
from sklearn.metrics import mean_squared_error
mse = mean_squared_error(y_test, pred)
print("MSE: ", mse)
```
需要注意的是,在进行反归一化处理时,需要使用与归一化处理时相同的Scaler对象才能得到正确的结果。
阅读全文