为什么一些机器学习模型需要对数据进行归一化?

    机器学习模型被互联网行业广泛应用,如排序(参见:排序学习实践)、推荐、反作弊、定位(参见:基于朴素贝叶斯的定位算法)等。一般做机器学习应用的时候大部分时间是花费在特征处理上,其中很关键的一步就是对特征数据进行归一化,为什么要归一化呢?很多同学并未搞清楚,维基百科给出的解释:1)归一化后加快了梯度下降求最优解的速度;2)归一化有可能提高精度。下面我简单扩展解释下这两点。

1 归一化为什么能提高梯度下降法求解最优解的速度?

      斯坦福机器学习视频做了很好的解释:https://class.coursera.org/ml-003/lecture/21

      如下图所示,蓝色的圈圈图代表的是两个特征的等高线。其中左图两个特征X1和X2的区间相差非常大,X1区间是[0,2000],X2区间是[1,5],其所形成的等高线非常尖。当使用梯度下降法寻求最优解时,很有可能走“之字型”路线(垂直等高线走),从而导致需要迭代很多次才能收敛;

      而右图对两个原始特征进行了归一化,其对应的等高线显得很圆,在梯度下降进行求解时能较快的收敛。

      因此如果机器学习模型使用梯度下降法求最优解时,归一化往往非常有必要,否则很难收敛甚至不能收敛。

2 归一化有可能提高精度

     一些分类器需要计算样本之间的距离(如欧氏距离),例如KNN。如果一个特征值域范围非常大,那么距离计算就主要取决于这个特征,从而与实际情况相悖(比如这时实际情况是值域范围小的特征更重要)。

3 归一化的类型

1)线性归一化

      这种归一化方法比较适用在数值比较集中的情况。这种方法有个缺陷,如果max和min不稳定,很容易使得归一化结果不稳定,使得后续使用效果也不稳定。实际使用中可以用经验常量值来替代max和min。

2)标准差标准化

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

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

3)非线性归一化

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

时间: 2025-01-31 09:40:17

为什么一些机器学习模型需要对数据进行归一化?的相关文章

摩根大通机器学习与金融大数据指南——未来的华尔街大亨|大数据+机器学习+金融工程师

更多深度文章,请关注:https://yq.aliyun.com/cloud 金融服务工作流行得快.过时得也快.2001年互联网公司的股权研究风靡一时:2006年,对担保债务凭证(CDOs)有着偏爱:2010年,信贷交易商很受欢迎:2014年,又轮到了合规专家:而在2017年,这是关于机器学习和大数据的时代,如果你能涉足该领域,那么你的未来将会有所保证. 摩根(J.P.Morgan)的定量投资和衍生策略团队发布了关于金融服务领域大数据和机器学习的最全面的报告,报告称,"大数据和人工智能(AI)战

如何在iPhone上建立第一个机器学习模型

引言 作为一名数据科学家,我一直有一个梦想--顶级科技公司在与我相关的领域不断推出新产品. 如果你观看了Apple公司最新的iPhone X发布会,你会发现iPhone X具有非常酷的特性,比如FaceID.动态表情.增强现实,这些特性都使用了机器学习.作为一名骇客,我决定亲自上手探索一下如何建立那样的系统. 进一步调查后我发现了一个很有趣的工具,那就是Apple官方面向开发者推出的机器学习框架工具CoreML.它可以在iPhone.Macbook.Apple TV.Apple watch等任何

香港科技大学在读博士生张鹏博:借鉴师生互动模式来训练机器学习模型

在学校教学模式中,老师扮演着重要的角色.借鉴老师与学生的师生互动模式,香港科技大学在读博士生张鹏博在他的论文A New Learning Paradigm for Random Vector Functional-Link Network: RVFL+中提出一种基于LUPI 的 random vector functional-link 网络(RVFL+),RVFL+不需要太多的计算硬件以及时间,优势明显. 在近期雷锋网 AI研习社的线上分享会上,他为我们详细解读了A New Learning

《构建实时机器学习系统》一2.2 怎样衡量监督式机器学习模型

2.2 怎样衡量监督式机器学习模型 本章前面对一个好的实时机器学习模型的衡量只提到了"优秀" "合适"这样的字眼,本节将会详细展开,讨论监督式实时机器学习模型的衡量标准. 在实际应用中,监督式实时机器学习效果的好坏可以分为统计量是否优秀和应用业绩是否优秀两个方面.下面将按照这两部分分别进行介绍. 在讨论技术细节之前,先进行一下符号的定义: 给定 n 组已知的自变量和因变量{(Yi, Xi)}ni=1作为测试数据集,对于任意i,我们通过自变量Xi和模型f(Xi; b)

机器学习项目中的数据预处理与数据整理之比较

要点 在常见的机器学习/深度学习项目里,数据准备占去整个分析管道的60%到80%. 市场上有各种用于数据清洗和特征工程的编程语言.框架和工具.它们之间的功能有重叠,也各有权衡. 数据整理是数据预处理的重要扩展.它最适合在可视化分析工具中使用,这能够避免分析流程被打断. 可视化分析工具与开源数据科学组件之间,如R.Python.KNIME.RapidMiner互为补充. 避免过多地使用组件能够加速数据科学项目.因此,在数据准备步骤中利用流式获取框架或流式分析产品会是一个不错的选择. 机器学习和深度

如何开发机器学习模型?(机器学习入门第三篇)

在之前的两篇文章里面,分别介绍了机器学习可以做哪些业务,以及学习机器学习所需要的了解的算法知识.本文将分享开发机器学习模型的全过程. 1.机器学习入门系列第一篇: 机器学习能为你的业务做什么?有些事情你肯定猜不到! 2.机器学习入门第二篇:关于机器学习算法 你需要了解的东西 你应该已经熟悉所有的技术概念了吧,现在,我们可以把某个想法变成一个可用于生产的实际模型了. 建模步骤一览 从较高的层次上来讲,创建一个优秀的机器学习模型跟创建其他任何产品是一样的:首先从构思开始,把要解决的问题和一些潜在的解

如何使用JavaScript构建机器学习模型

目前,机器学习领域建模的主要语言是 Python 和 R,前不久腾讯推出的机器学习框架 Angel 则支持 Java 和 Scala.本文作者 Abhishek Soni 则用行动告诉我们,开发机器学习模型,JavaScript 也可以. JavaScript?我不是应该使用 Python 吗?甚至 Scikit-learn 在 JavaScript 上都不工作. 这是可能的,实际上,连我自己都惊讶于开发者对此忽视的态度.就 Scikit-learn 而言,Javascript 的开发者事实上已

《构建实时机器学习系统》一1.8 实时机器学习模型的生存期

1.8 实时机器学习模型的生存期 进行实时机器学习开发必须考虑生存期.生存期是指一个系统从提出.设计.开发. 测试到部署运用.维护.更新升级或退役的整个过程.若在生存期设计上出现了数据,那么在后面的使用中就会出现各种各样的瓶颈阻碍应用产生价值. 从软件工程的角度上讲,开发实时机器学习也遵从构思.分析.设计.实现和维护五个步骤,这五个步骤可能会循环往复,随着业务的发展进行多次迭代.实时机器学习模型的应用由于其技术的特殊性,也具有自己的小型生存期,其中包括数据收集.数据分析.离线手工建模评测.上线自

你的机器学习模型为什么会出错?奉上四大原因解析及五条改进措施

对开发者来说,目前有一系列的机器学习模型可供选择.雷锋网(公众号:雷锋网)了解,可以用线性回归模型预测具体的数值,用逻辑回归模型对不同的运算结果进行归类,以及用神经网络模型处理非线性的问题等等. 不论哪一种,当模型选定之后,下一步就是利用大量的现有数据对相关的机器学习算法进行训练,探究既定的输入数据和预想的输出结果之间的内在关系.但这时可能会出现一种情况:训练结果能够成功应用于原始输入和输出,可一旦有新的数据输入就不行了. 或者说得更直白一点,应该怎样评估一个机器学习模型是否真的行之有效呢?雷锋