神经网络中数据的归一和还原

4 篇文章 6 订阅

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

  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

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

  • 8
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值