数据标准化的方法与意义

含义

数据标准化和归一化存在区别
数据归一化是数据标准化的一种典型做法,即将数据统一映射到[0,1]区间上.
数据的标准化是指将数据按照比例缩放,使之落入一个特定的区间.

意义

  1. 求解需要
    比如在SVM中处理分类问题是又是需要进行数据的归一化处理,不然会对准确率产生很大的影响,具体点说,比如避免出现因为数值过大导致c,g取值超过寻优范围

    除此之外,最明显的是在神经网络中的影响,主要有四个层面

    • 有利于初始化的进行
    • 避免给梯度数值的更新带来数值问题
    • 有利于学习率数值的调整
    • 搜索轨迹:加快寻找最优解速度

    数据归一化 对 搜索轨迹的影响

具体情况请参考:神经网络为什么要归一化:

http://blog.csdn.net/fontthrone/article/details/74064971
2. 加快寻找最优解(加快收敛速度)

没有归一化前,寻找最优解的过程:
归一化前求解
归一化后的过程:
归一化后求解
3. 无量纲化(业务上需求上的):

指去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或者量级的指标能够进行和加权.
比如身高与体重,房子数量与收入等.
4. 数值问题

不归一化的数值,比如浮点数可能会产生数值不相等的问题.
5. 数值范围减小对许多算法在纯粹的数值计算上都有一定加速作用(个人看法,虽然影响不大,但效果还是有的)

常用公式

  1. min-max标准化(Min-max normalization)

又名离差标准化,是对原始数据的线性转化,公式如下

离差标准化公式

含义: max : 样本最大值; min: 样本最小值;
问题: 当有新数据加入时需要重新进行数据归一化
2. z-score 标准化(zero-mean normalization)

又名标准差标准化,归一化后的数据呈正态分布,即均值为零,标准差为一公式如下:

标准差标准化

其中μ为所有样本数据的均值,σ为所有样本数据的标准差。与离差标准化的不同之处在于,离差标准化仅仅仅仅对原数据的的方差与均差进行了倍数缩减,而标准差标准化则使标准化的数据方差为一。这对许多的算法更加有利,但是其缺点在于假如原始数据没有呈高斯分布,标准化的数据分布效果并不好。
3. atan反正切函数标准化

公式如下:

反正切函数标准化

问题: 数据必须大于零,大于零的函数将会被映射到[-1,0]上

atan函数图像如下:

atan函数图像
4. log函数标准化

公式如下:

log-function

问题:
a . 数据必须大于等于一
b. 如果数值大于10**10(十的十次方),那么映射的数据将大于一
解决问题b 的方案,改变公式以类似于 ” min-max标准化的方式 “, 如下:

改进后的log标-function

max: 样本最大值
通过 ” /log10(max) ” 值得方式,可以保证所有样本能够正确的映射到[0,1]空间,

posted @ 2017-07-01 16:28  FontTian  阅读(1446)  评论(0编辑  收藏  举报