机器学习——数据归一化

机器学习中,在数据预处理过程中,通过将数据归一化可以加快梯度下降求最优解的速度,也有可能提高模型计算的精度。

常用的归一化方法主要有两种:

  1. 最值归一化。比如把最大值归一化成1,最小值归一化成-1;或把最大值归一化成1,最小值归一化成0。适用于本来就分布在有限范围内的数据。
    1. 其中常用的方法有
      1. 线性比例变换法:yi = xi/max(x)  即归一化后结果等于未处理前值除以样本中最大值
      2. 极差变换法:yi = (xi-min(x))/(max(x)-min(x))  即归一化后结果等于未处理前值减去最小值之后除以最大值减去最小值的差
  2. 0均值方差归一化(标准化)。一般是把均值归一化成0,方差归一化成1。适用于分布没有明显边界的情况,受outlier影响也较小。
    1. 使用的方法如下:
      1. yi = (xi-mean(x))/σ  其中,mean(x)为均值,σ为方差
      2. 在python中,可以用一下方法:
        1. import Numpy as np
        2. mean = np.mean(X, axis=0)  # 均值
        3. v = np.std(X, axis=0) # 方差
        4. X = (X - mean) / v #得到归一化结果

 归一化和标准化的区别

  1. 归一化的缩放是统一到区间(仅由极值决定),输出范围是在0到1(或-1到1)之间的,它的结果很容易受异常值影响(如有一个与其他值相比特别大的值,则会造成很大影响)。
  2. 标准化的缩放是更加“弹性”和“动态”的,和整体样本的分布(即样本中每个点)有很大的关系,输出范围是负无穷到正无穷。它的结果不太受异常值的影响,相对可以避免异常值和极端值的影响。

对于一些我们常见的模型来说,概率模型不需要归一化,因为它们不关心变量的值,而是关心变量的分布和变量之间的条件概率,如决策树、rf。而像 adaboost、svm、lr、KNN、KMeans 之类的最优化问题就需要归一化。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值