Java教程

反归一化

本文主要是介绍反归一化,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

问题描述:归一化后使用模型进行预测,将预测的结果反归一化为初始的数据规模,预测值与真实值进行画图比较。

1、将特征和标注进行拆分,分别进行归一化

2、特征的归一化

1 from sklearn.preprocessing import MinMaxScaler       # 导包
2 data.name = data.columns     # 获取列名
3 for i in data.name:
4     data[i] = MinMaxScaler().fit_transform(data[i].values.reshape(-1, 1))

3、标注的归一化

1 from sklearn import preprocessing      # 导包
2 
3 scaler= preprocessing.MinMaxScaler(feature_range=(-1, 1)).fit(Y)      # Y是标注
4 Y_scaled = scaler.transform(Y)       # Y_scaled是归一化后的值,此时是 ndarray 类型的值。

4、拆分训练集和测试集

5、使用模型进行预测得到Y_pred

6、将Y_pred进行反归一化,恢复原始的数据规模

1 Y_ = scaler.inverse_transform(Y_pred.reshape(-1,1))         # 反归一化,此时是ndarray类型的值
2 Y_ = pd.DataFrame(Y_, columns=['A'])              # 将ndarray转换为df形式,并设置列名

7、画图进行观察预测值和真实值的曲线

1 plt.figure()       # 设置画板
2 # Y_true.index = [i for i in range(0, len(...))]       # 重置下标,如果下标不一致可以使用这个句子进行调整
3 plt.plot(Y_true['A'], label='真实值')     # 真实值绘图
4 plt.plot(Y_['A'], label='预测值')         # 预测值绘图
5 plt.legend(bbox_to_anchor=(1.05, 0), loc=3, borderaxespad=0)     # 设置图例,我一般将图例放置在右下角
6 plt.show()         # 显示图像
这篇关于反归一化的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!