机器学习-9:MachineLN之数据归一化

作者: MachineLP | 来源:发表于2018-01-11 10:33 被阅读19次

    我想说:

    有时候很羡慕一些人,从开始的无到有,譬如一些人平常工资三四千,但是由于很长时间的积累和习惯,他们的睡后收入是上班工资的四倍甚至五倍,但是我感觉他们可以,我也一定可以,所以这半年我就拿出更多的时间睡觉,但是我这半年的睡后收入可能只在五千左右;难道我做错了嘛?那么我就从每天的睡觉十个小时缩减到六个小时试试吧,测试一下睡眠时间是不是和睡后收入成反比的(测试结果明年公布),真是奇怪哈,不应该睡的越久睡后收入越多嘛!!!(哈哈哈,真实幽默哈,但是不一定有人欣赏你哈)

    另外今天又背了一首诗《黄鹤楼》:(后面教女儿用的)

    昔人已乘黄鹤去,此地空余黄鹤楼。

    黄鹤一去不复返,白云千载空悠悠。

    晴川历历汉阳树,芳草萋萋鹦鹉洲。

    日暮乡关何处是?烟波江上使人愁。

    说到数据归一化,那么我的问题是:

    1. 什么是数据归一化?

    2. 为什么要进行数据归一化?

    3. 数据归一化的方法有哪些?

    看到这里你的答案是什么?下面是我的答案:(但是在使用的时候你要知道使用场景和哪些需要归一化,例如SVM、线性回归等需要归一化,决策树就不需要归一化;DeepLN之CNN权重更新(笔记)数据挖掘中的问题很犀利,很实用;)

    1. 什么是数据归一化?

    归一化可以定义为:归一化就是要把你需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内。首先归一化是为了后面数据处理的方便,其次是保证模型运行时收敛加快。

    下面以二维数据举个例子,下图是未归一化的数据:

    image

    下面两个图是通过不同算法进行归一化:

    image.png

    是的什么事样本归一化解释完了。

    2. 为什么要进行数据归一化?

    在我们模型训练的时候,数据在不同的取值范围内,例如x1取值[1:1000],特征x2的取值范[1:10],那么权重更新的时候,w1和w2值的范围或者比率会完全不同,下图中w和b对应w1和w2,可以看出函数的轮廓十分狭窄。

    image.png

    那么再看一下,在这样的数据的损失函数使用梯度下降,必须使用一个非常小的学习比率,因为如果是在这个位置,梯度下降法可能需要更多次迭代过程。

    image.png

    数据进行归一化后的图是这个样子的:

    image

    梯度下降的图事这样子的:

    image

    到这里,大家知道了为什么进行数据归一化训练的重要性:可以使用较大的学习率,并且加速收敛。

    3. 数据归一化的方法有哪些? 适应的场景是什么?

    (1) 线性归一化

    image

    在图像中可以简化为:x = ( (x / 255) -0.5 ) * 2, 归一化到[-1,1];

    这种归一化方法比较适用在数值比较集中的情况。但是,如果max和min不稳定,很容易使得归一化结果不稳定,使得后续使用效果也不稳定,实际使用中可以用经验常量值来替代max和min。而且当有新数据加入时,可能导致max和min的变化,需要重新定义。

    在不涉及距离度量、协方差计算、数据不符合正太分布的时候,可以使用第一种方法或其他归一化方法。比如图像处理中,将RGB图像转换为灰度图像后将其值限定在[0 255]的范围。

    (2)标准差归一化

    处理后的数据符合标准正态分布,即均值为0,标准差为1,其转化函数为:

    image

    u: 所有数据的均值, σ: 所有数据的标准差。

    该种归一化方式要求原始数据的分布可以近似为高斯分布,否则归一化的效果会变得很糟糕。在分类、聚类算法中,需要使用距离来度量相似性的时候、或者使用PCA技术进行降维的时候,这种方法表现更好。

    (3)非线性归一化

    经常用在数据分化比较大的场景,有些数值很大,有些很小。通过一些数学函数,将原始值进行映射。该方法包括 log、指数,正切等。需要根据数据分布的情况,决定非线性函数的曲线,比如log(V, 2)还是log(V, 10)等。

    例如:

    通过以10为底的log函数转换的方法同样可以实现归一下:

    image

    用反正切函数也可以实现数据的归一化:

    image

    我们正在打造一个系列,一起系统化学习知识,欢迎关注我们,文章可能会有错误,欢迎交流指正。并且发现一处错误可以联系machinelp,10红包,红包虽小,意义重大!让我们一起学习一起进步,这是一个共赢的时代,任何事情从我这里开始了都不会从我这里停下来,一起加油!

    推荐阅读:

    1. 机器学习-1:MachineLN之三要素

    2. 机器学习-2:MachineLN之模型评估

    3. 机器学习-3:MachineLN之dl

    4. 机器学习-4:DeepLN之CNN解析

    5. 机器学习-5:DeepLN之CNN权重更新(笔记)

    6. 机器学习-6:DeepLN之CNN源码

    7. 机器学习-7:MachineLN之激活函数

    8. 机器学习-8:DeepLN之BN

    9. 机器学习-9:MachineLN之数据归一化

    10. 机器学习-10:MachineLN之样本不均衡

    11. 机器学习-11:MachineLN之过拟合

    12. 机器学习-12:MachineLN之优化算法

    13. 机器学习-13:MachineLN之kNN

    14. 机器学习-14:MachineLN之kNN源码

    15. 机器学习-15:MachineLN之感知机

    16. 机器学习-16:MachineLN之感知机源码

    17. 机器学习-17:MachineLN之逻辑回归

    18. 机器学习-18:MachineLN之逻辑回归源码

    image

    相关文章

      网友评论

        本文标题:机器学习-9:MachineLN之数据归一化

        本文链接:https://www.haomeiwen.com/subject/mpdznxtx.html