zoukankan      html  css  js  c++  java
  • P8 08 特征预处理-归一化

     

     

    注解: 

    1. 其实就是值的转换。

     

     注解:

    1. 这个是特征预处理方法的API。

    例子:

     

    https://zhuanlan.zhihu.com/p/91125751

    一般做机器学习应用的时候大部分时间是花费在特征处理上,其中很关键的一步就是对特征数据进行归一化,那么为什么要归一化呢?

    目录:

    1. 定义
    2. 优点
    3. 方法
    4. 结构

     

    一、定义

    数据标准化(Normalization),也称为归一化,归一化就是将你需要处理的数据在通过某种算法经过处理后,限制将其限定在你需要的一定的范围内。

    数据标准化处理是数据挖掘的一项基础工作,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要对数据进行归一化处理,解决数据指标之间的可比性问题。

    二、优点

    从定义中我们可以得知,数据归一化的目的就是为了把不同来源的数据统一到同一数量级(或者是一个参考坐标系)下,这样使得比较起来有意义。归一化使得后面数据的处理更为方便,它有两大优点:

    (1)归一化提高梯度下降发求解最优解的速度

    如下图,蓝色的圈圈表示特征的等高线。其中左图的两个特征x1和x2区间相差较大,x1~[0,2000],x2~[1,5],期所形成的等高线在一些区域相距非常远,当使用梯度下降法求解最优解的时候,很可能垂直等高线走“之字型”路线(左图红色路径),从而导致需要迭代很多次才能收敛,也可能不收敛。而右图对两个原始特征进行了归一化处理,其对应的等高线显得很圆,在梯度下降的时候就能很快收敛。因此,如果机器学习使用梯度下降法求解最优解时,归一化往往是非常有必要的。

    (2)归一化有可能提高精度

    一些分类器(如KNN)需要计算样本之间的距离(如欧式距离)。如果一个特征值域范围非常大,那么距离计算就要取决于这个特征,如果这时实际情况是值域范围小的特征更重要,那么归一化就要起作用了。

    三、归一化方法

    (1)线性归一化,也称min-max标准化、离差标准化;是对原始数据的线性变换,使得结果值映射到[0,1]之间。转换函数如下:

    这种归一化比较适用在数值较集中的情况。但是这种方法有一个缺陷,就是如果max和min不稳定的时候,很容易使得归一化的结果不稳定,易受极值影响,影响后续使用效果。所以在实际应用中,我们一般用经验常量来替代max和min。

    (2)标准差归一化,也叫Z-score标准化,这种方法给予原始数据的均值(mean,μ)和标准差(standard deviation,σ)进行数据的标准化。经过处理后的数据符合标准正态分布,即均值为0,标准差为1,转化函数为:

    (3)非线性归一化,这种方法一般使用在数据分析比较大的场景,有些数值很大,有些很小,通过一些数学函数,将原始值进行映射。一般使用的函数包括log、指数、正切等,需要根据数据分布的具体情况来决定非线性函数的曲线。

     

    四、结构

    (1)深度模型的激活函数

    (2)激活函数导致的梯度消失

    (3)批量归一化

    (4)自归一化神经网络

    总结:

    如果对输出结果范围有要求,或是数据较为稳定,不存在极端的最大最小值,就可以用归一化

    如果数据存在异常值和较多噪音,用标准化,可以间接通过中心化避免异常值和极端值的影响

    发布于 2019-11-11
     
     
  • 相关阅读:
    Memcached源码分析之memcached.h
    Memcached源码分析之请求处理(状态机)
    Memcached源码分析之线程模型
    Memcached源码分析之从SET命令开始说起
    Memcached源码分析
    jqgrid 获取当前页码
    CSS 居中大全【转】
    判断浏览器是否IE10
    jQuery.validate的this.optional(element)作用
    Java中static、final用法小结
  • 原文地址:https://www.cnblogs.com/yibeimingyue/p/14155708.html
Copyright © 2011-2022 走看看