数据的归一化处理和标准化处理

#值的归一化处理
 1) 数据为什么做归一化处理
    
解析: 

假设一个神经元有两个输入分别是x1和x2,权重分别是w1和w2,那么该神经元的信号加权求和为x1w1+x2w2。再假设x1属于[0~1],x2属于[100~1000],那么x2远远大于x1,那么x1w1就可以忽略不计,整个加权求和就只由x2w2来决定,小的信号就被淹没了!

  所以需要将x1和x2都要做数据归一化处理避免造成数据结果不准确

在算法中如果各列数据值相差过大,必须要做归一化处理(或标准化处理)

def autoNorm(dataSet):
    minVals = dataSet.min(0)#最大值
    maxVals = dataSet.max(0)#最小值
    ranges = maxVals - minVals#差值
    normDataSet = zeros(shape(dataSet))#生成一个大小与dataSet相同的纬度数组,空的
    m = dataSet.shape[0]#dataSet行数

    #数据归一化公式
    #newValue=(oldValue-min)/(max-min)
    normDataSet = dataSet - tile(minVals, (m,1))
    normDataSet = normDataSet/tile(ranges, (m,1))   #element wise divide
    return normDataSet, ranges, minVals

2)数据标准化处理

from sklearn.preprocessing import StandardScaler
# 标准化数据,保证每个维度的特征数据方差为1,均值为0。使得预测结果不会被某些维度过大的特征值而主导。
ss = StandardScaler()
X_train = ss.fit_transform(self.X_train)
X_test = ss.transform(self.X_test)
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值