神经网络中数据的归一和还原
神经网络中常常用到归一化。归一化要注意的点及代码如下(以最大最小归一化为例):训练,测试数据分开归一化;X,y分开归一化。使用训练数据进行归一化,得到参数后,再用来归一化测试数据。X和y也要分开归一化,这样才好根据各自的参数对预测数据进行还原(inverse)。注意不要上来就对所有数据进行归一化,因为在实际使用中,我们并不知道预测数据的分布。x_scaler = preprocessing.Min
·
神经网络中常常用到归一化。
归一化要注意的点及代码如下(以最大最小归一化为例):
- 训练,测试数据分开归一化;X,y分开归一化。使用训练数据进行归一化,得到参数后,再用来归一化测试数据。X和y也要分开归一化,这样才好根据各自的参数对预测数据进行还原(inverse)。
注意不要上来就对所有数据进行归一化,因为在实际使用中,我们并不知道预测数据的分布。
x_scaler = preprocessing.MinMaxScaler(feature_range=(0, 1))
y_scaler = preprocessing.MinMaxScaler(feature_range=(0, 1))
#先归一化训练数据
train_X = x_scaler.fit_transform(train_X)
train_y = y_scaler.fit_transform(train_y)
#再来归一化测试数据
test_X = x_scaler.transform(test_X)
test_y = y_scaler.transform(test_y)
- 拿到归一化前数据的特征参数。比如最大最小值,以便后面进行还原操作。
y_max = train_y.max(axis=0)
y_min = train_y.min(axis=0)
- 前面进行了归一化,因此我们得把预测数据还原才能使数据回到他的原始维度(否则都在0-1之间了)
prediction_y = prediction*(y_max-y_min)+y_min
其实都是些很简单的点,但是写一下就会印象深刻些,不会忘啦~上面的代码只是我的程序中截取出来的,只是个例子,不一定通用。
更多推荐
已为社区贡献1条内容
所有评论(0)