机器学习——标准化/归一化的目的、作用和场景

(一)归一化的作用

在机器学习领域中,不同评价指标(即特征向量中的不同特征就是所述的不同评价指标)往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。其中,最典型的就是数据的归一化处理。(可以参考学习:数据标准化/归一化)

简而言之,归一化的目的就是使得预处理的数据被限定在一定的范围内(比如[0,1]或者[-1,1]),从而消除奇异样本数据导致的不良影响。

1)在统计学中,归一化的具体作用是归纳统一样本的统计分布性。归一化在0~1之间是统计的概率分布,归一化在-1~+1之间是统计的坐标分布。

2)奇异样本数据是指相对于其他输入样本特别大或特别小的样本矢量(即特征向量),譬如,下面为具有两个特征的样本数据x1、x2、x3、x4、x5、x6(特征向量—>列向量),其中x6这个样本的两个特征相对其他样本而言相差比较大,因此,x6认为是奇异样本数据。

奇异样本数据的存在会引起训练时间增大,同时也可能导致无法收敛,因此,当存在奇异样本数据时,在进行训练之前需要对预处理数据进行归一化;反之,不存在奇异样本数据时,则可以不进行归一化。

解释范例:http://www.cnblogs.com/silence-tommy/p/7113498.html

--如果不进行归一化,那么由于特征向量中不同特征的取值相差较大,会导致目标函数变“扁”。这样在进行梯度下降的时候,梯度的方向就会偏离最小值的方向,走很多弯路,即训练时间过长。

--如果进行归一化以后,目标函数会呈现比较“圆”,这样训练速度大大加快,少走很多弯路。

综上可知,归一化有如下好处,即

1)归一化后加快了梯度下降求最优解的速度;

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

注:没有一种数据标准化的方法,放在每一个问题,放在每一个模型,都能提高算法精度和加速算法的收敛速度。

(二)归一化的方法

1)最大最小标准化(Min-Max Normalization)

a). 本归一化方法又称为离差标准化,使结果值映射到[0 ,1]之间,转换函数如下:

b). 本归一化方法比较适用在数值比较集中的情况;

c). 缺陷:如果max和min不稳定,很容易使得归一化结果不稳定,使得后续使用效果也不稳定。实际使用中可以用经验常量来替代max和min。

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

2)Z-score标准化方法

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

其中μ为所有样本数据的均值,σ为所有样本数据的标准差。

b). 本方法要求原始数据的分布可以近似为高斯分布,否则归一化的效果会变得很糟糕;

c). 应用场景:在分类、聚类算法中,需要使用距离来度量相似性的时候、或者使用PCA技术进行降维的时候,Z-score standardization表现更好。

3)非线性归一化

a). 本归一化方法经常用在数据分化比较大的场景,有些数值很大,有些很小。通过一些数学函数,将原始值进行映射。

b). 该方法包括 log,正切等,需要根据数据分布的情况,决定非线性函数的曲线:

 ---log对数函数转换方法

y = log10(x),即以10为底的对数转换函数,对应的归一化方法为:x' = log10(x) /log10(max),其中max表示样本数据的最大

值,并且所有样本数据均要大于等于1.

---atan反正切函数转换方法

利用反正切函数可以实现数据的归一化,即

x' = atan(x)*(2/pi)

使用这个方法需要注意的是如果想映射的区间为[0,1],则数据都应该大于等于0,小于0的数据将被映射到[-1,0]区间上.

---L2范数归一化方法

L2范数归一化就是特征向量中每个元素均除以向量的L2范数:

(三)应用场景说明

1)概率模型不需要归一化,因为这种模型不关心变量的取值,而是关心变量的分布和变量之间的条件概率;

2)SVM、线性回归之类的最优化问题需要归一化,是否归一化主要在于是否关心变量取值;

3)神经网络需要标准化处理,一般变量的取值在-1到1之间,这样做是为了弱化某些变量的值较大而对模型产生影响。一般神经网络中的隐藏层采用tanh激活函数比sigmod激活函数要好些,因为tanh双曲正切函数的取值[-1,1]之间,均值为0.

4)在K近邻算法中,如果不对解释变量进行标准化,那么具有小数量级的解释变量的影响就会微乎其微。

(四)参考文献:
[1] http://blog.csdn.net/acdreamers/article/details/44664205

[2] http://www.cnblogs.com/silence-tommy/p/7113498.html

[3] http://blog.csdn.net/debug_snail/article/details/51781046

[4] http://www.open-open.com/lib/view/open1429697131932.html

[5] http://www.cnblogs.com/chaosimple/archive/2013/07/31/3227271.html

[6] http://blog.csdn.net/zbc1090549839/article/details/44103801

[7] http://blog.csdn.net/uestc_c2_403/article/details/75804617

[8] http://blog.csdn.net/u011650143/article/details/71515927
--------------------- 
作者:o_Eagle_o 
来源:CSDN 
原文:https://blog.csdn.net/zenghaitao0128/article/details/78361038 
版权声明:本文为博主原创文章,转载请附上博文链接!

机器学习——标准化/归一化的目的和作用相关推荐

  1. 机器学习——标准化/归一化的目的、作用和场景

    对每个特征进行归一化处理,使得每个特征的取值缩放到0~1之间.这样做有两个好处: 模型训练更高效. 特征前的权重大小可代表该变量对预测结果的贡献度(因为每个特征值本身的范围相同). (一)归一化的作用 ...

  2. 机器学习中数据预处理——标准化/归一化方法(scaler)

    由于工作问题比较忙,有两周没有总结一下工作学习中遇到的问题. 这篇主要是关于机器学习中的数据预处理的scaler变化. 工作中遇到的问题是:流量预测问题,拿到的数据差距非常大,凌晨的通话流量很少几乎为 ...

  3. 均值归一化_机器学习之归一化(Normalization)

    一般做机器学习应用的时候大部分时间是花费在特征处理上,其中很关键的一步就是对特征数据进行归一化,那么为什么要归一化呢? 目录: 定义 优点 方法 结构 一.定义 数据标准化(Normalization ...

  4. pandas数据预处理(标准化归一化、离散化/分箱/分桶、分类数据处理、时间类型数据处理、样本类别分布不均衡数据处理、数据抽样)

    1. 数值型数据的处理 1.1 标准化&归一化 数据标准化是一个常用的数据预处理操作,目的是处理不同规模和量纲的数据,使其缩放到相同的数据区间和范围,以减少规模.特征.分布差异等对模型的影响. ...

  5. 机器学习三 归一化_正则化_多项式升维

    一. 归一化 1.归一化的目的 把数据变为(0,1)之间的数 ,使得在梯度下降的过程中,不同维度的θ值(或w)参数可以在接近的调整幅度上.保持数据在迭代过程中的θ值幅度基本一致. 2.常用的归一化类别 ...

  6. 标准化作业指导书的作用是什么?如何制作标准化作业指导书?

    如今,市场竞争日益激烈,很多企业为了增强竞争力,制定了生产作业指导书,但是由于这些指导书是凭人为经验制作而成,会出现层次低.质量差,对加工.生产的指导作用不明显的缺陷.而想要在行业中提高竞争力,制定标 ...

  7. 数据处理之标准化/归一化方法

    数据处理之标准化/归一化方法 归一化方法(Normalization Method) 1.把数变为(0,1)之间的小数 主要是为了数据处理方便提出来的,把数据映射到0-1范围之内处理,更加便捷快速,应 ...

  8. dataframe数据标准化处理_数据预处理——标准化/归一化(实例)

    这次我们来说说关于数据预处理中的数据标准化及归一化的问题.主要以理论+实例的方式为大家展示. 本次实验也将会展示部分数据以及代码,有兴趣的小伙伴可以自己动手试试~ 在本次实例过程中,我们使用的数据是: ...

  9. Python机器学习--KNN归一化、距离的惩罚

    1. 归一化 1.1 距离类模型归一化的需求 什么是归一化呢?我们把X放到数据框中来看一一眼, 你是否观察到,每个特征的均值差异很大?有的特征数值很大.有的特征数值很小,这种现象在机器学习中被称为&q ...

最新文章

  1. DispatcherServlet之HandlerAdapter的handle
  2. php 复选框 数组,php数组的复选框
  3. 如何在剃须刀中使用三元运算符(特别是在HTML属性上)?
  4. 爬虫python需要什么软件-python的爬虫流程是什么?这是编程小白必须要了解的
  5. JMeter 分布式性能测试
  6. 发现你的身形——OpenCV图像轮廓
  7. LeetCode:63. 不同路径 II
  8. map和pair的配合使用
  9. SAP Spartacus SeoMetaService 的单元测试代码
  10. All men are brothers(并查集+思维 好题!!!)
  11. Mysql 查看版本号
  12. 用jquery实现简单的表单验证
  13. Android App应用包增量升级(one)
  14. 【USACO 2.4】Fractions to Decimals(分数转小数)
  15. sql获取当前时间精确到秒的字符串
  16. WordPress优化教程让WordPress打开速度更快
  17. VMware16安装Win10系统图文教程
  18. [审核]App审核被拒绝(本地网络权限弹框“Local Network”)
  19. iceberg-flink 十:flink任务后台关闭,并查找savepoint。
  20. 开源中Web开发的各种资源

热门文章

  1. vue-draggable的多列拖动与拷贝拖拽(不删除源数据列)
  2. Excel每隔一行删除
  3. Dubbo——远程(RPC)调用原理
  4. Instrumentation安卓官方简介(个人认为是HighLevel抽象出来的最简洁明了的阐述)
  5. 2021-10-05
  6. 大众PLC自动控制系统,VASS标准项目应该知道的几个知识点
  7. word 文档比加大100M-老死机
  8. android常用英语总结
  9. 猎聘数据:32.61万!电子通信行业程序员招聘平均年薪最高
  10. FPGA时序约束理论之时钟周期约束(5)