神经网络中常常用到归一化。
归一化要注意的点及代码如下(以最大最小归一化为例):

  1. 训练,测试数据分开归一化;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)
  1. 拿到归一化前数据的特征参数。比如最大最小值,以便后面进行还原操作。
y_max = train_y.max(axis=0)
y_min = train_y.min(axis=0)
  1. 前面进行了归一化,因此我们得把预测数据还原才能使数据回到他的原始维度(否则都在0-1之间了)
prediction_y = prediction*(y_max-y_min)+y_min

其实都是些很简单的点,但是写一下就会印象深刻些,不会忘啦~上面的代码只是我的程序中截取出来的,只是个例子,不一定通用。

Logo

学大模型,用大模型上飞桨星河社区!每天8点V100G算力免费领!免费领取ERNIE 4.0 100w Token >>>

更多推荐