机器学习

Author:louwill

Machine Learning Lab

一直都有朋友在做机器学习模型时有疑问:我的数据要不要做标准化处理?

这个问题笔者也思考过,只不过不够系统,观点也比较单一,所以才有了上图中的【变量单位之间数量级差异过大】的回答。就着这个话题,笔者查阅相关资料,相对这个问题进行一个详细的阐述。

什么是数据标准化

在完整的机器学习流程中,数据标准化(Data Standardization)一直是一项重要的处理流程。一般我们将数据标准化放在预处理过程中,作为一项通用技术而存在。但很多时候我们并不清楚为什么要对数据做标准化处理,是不是做了标准化模型表现就一定会提升。

数据标准化的直接定义如下公式所示:

即对数据集特征每一数据减去特征均值后除以特征标准差。数据标准化可以将对应特征数据变换均值为0方差为1。经过数据标准化之后,数据集所有特征有了同样的变化范围。

数据标准化一个最直接的应用场景就是:当数据集的各个特征取值范围存在较大差异时,或者是各特征取值单位差异较大时,我们是需要使用标准化来对数据进行预处理的。

举个例子,一个包含两个特征的数据,其中一个特征取值范围为5000~10000,另一个特征取值范围仅有0.1-1,实际在建模训练时,无论什么模型,第一个特征对模型结果的影响都会大于第二个特征,这样的模型是很难有效做出准确预测的。

与数据归一化的区别

数据归一化(Normalization)同样也是一项数据预处理技术。但一直以来,我们都是标准化和归一化傻傻分不清楚,并且存在长期混用的情况。数据归一化的计算公式如下:

或者是:

笔者查阅相关资料,发现对于这两种数据变换方法,一直没有统一的界定。很多时候都存在标准化和归一化概念混用的情况,有时候把z-score变换叫归一化,有时候又把min-max归一化叫标准化。通过比对,笔者认为标准化指的就是z-score变换,即前述第一个公式。归一化指的就是min-max变换,即前述第二或第三个公式。

数据标准化为了不同特征之间具备可比性,经过标准化变换之后的特征分布没有发生改变。数据归一化的目的是使得各特征对目标变量的影响一致,会将特征数据进行伸缩变化,所以数据归一化是会改变特征数据分布的。

哪些模型对标准化处理比较敏感?

机器学习中有部分模型是基于距离度量进行模型预测和分类的。由于距离对特征之间不同取值范围非常敏感,所以基于距离读量的模型是十分有必要做数据标准化处理的。

最典型基于距离度量的模型包括k近邻、kmeans聚类、感知机和SVM。另外,线性回归类的几个模型一般情况下也是需要做数据标准化处理的。决策树、基于决策树的Boosting和Bagging等集成学习模型对于特征取值大小并不敏感。所以这类模型一般不需要做数据标准化处理。另外有较多类别变量的数据也是不需要做标准化处理的。

结论

结论就是当数据特征取值范围或单位差异较大时,最好是做一下标准化处理。k近邻、kmeans聚类、感知机、SVM和线性回归类的模型,一般也是需要做数据标准化处理的。另外最好区分一下数据标准化和数据归一化。

参考资料:

https://towardsai.net/p/data-science/how-when-and-why-should-you-normalize-standardize-rescale-your-data-3f083def38ff

往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑获取一折本站知识星球优惠券,复制链接直接打开:https://t.zsxq.com/662nyZF本站qq群1003271085。加入微信群请扫码进群(如果是博士或者准备读博士请说明):

【机器学习基础】机器学习模型什么时候需要做数据标准化?相关推荐

  1. 什么时候需要coinitialize_机器学习模型什么时候需要做数据标准化?

    机器学习 Author:louwill Machine Learning Lab 一直都有朋友在做机器学习模型时有疑问:我的数据要不要做标准化处理? 这个问题笔者也思考过,只不过不够系统,观点也比较单 ...

  2. 机器学习模型什么时候需要做数据标准化?

    机器学习 Author:louwill Machine Learning Lab 一直都有朋友在做机器学习模型时有疑问:我的数据要不要做标准化处理? 这个问题笔者也思考过,只不过不够系统,观点也比较单 ...

  3. 机器学习基础:模型评估(下)

    目录 1. 引言 2. 进一步评估 3. 机器学习中的偏差和方差种类 3.1 过拟合 3.2 欠拟合 3.3 训练曲线观察泛化性 3.4 模型偏差和方差(bias and variance) 3.4. ...

  4. 机器学习基础:模型评估(上)

    目录 1. 什么是一个优秀的分类器 2. 选择测试数据集 2.1 切分训练测试集 2.1.1 简单随机划分(random handout) 2.1.2 留一法(leave-one-out) 2.1.3 ...

  5. 机器学习基础——生成模型和判别模型

    有监督学习方法可以再分为生成生成方法和判别方法 1.首先官方点的说法 生成模型,是去求出数据的联合概率分布,然后根据联合概率分布求出对应X的条件概率 P(y∣x)=P(x,y)P(x)P(y|x) = ...

  6. 机器学习基础 HMM模型(隐马尔科夫)

    文章目录 一.马尔科夫链 1. 简介 2. 经典举例 3. 小结 二.HMM简介 1. 简单案例 2. 三个基本问题 三.HMM模型基础 1. 什么样的问题需要HMM模型 2. HMM模型的定义 3. ...

  7. 机器学习基础之模型篇-----二元分类和多元分类

    机器学习是一个比较广阔的知识领域,涉及到很多数学统计和计算机的相关知识. 要想深入了解,需要系统学习和大量的时间. 但是如果我们很清楚地知道机器学习如果用一句话来概括就是:通过大量的训练,使得机器把输 ...

  8. 机器学习基础:模型集成/集成学习

    目录 1. 什么是集成学习 1.1 分类器集成的结果 1.2 构造基分类器的三种方法 1.3 多个基分类器如何进行分类 2. 分析预测模型的泛化误差 3. 分类器集成方法 3.1 装袋法 Baggin ...

  9. Python机器学习:梯度下降法005梯度下降法和数据标准化

    #%% #我还是使用sklearn吧.. import numpy as np from sklearn import datasets from sklearn.model_selection im ...

最新文章

  1. 正则显示手机号显示3 4 4 格式
  2. shell脚本初级教学(从基本脚本开始学起)
  3. 深入理解 ProtoBuf 原理与工程实践(概述)
  4. (转)IntelliJ Idea 的相关使用
  5. VTK修炼之道19:图像基本操作_图像像素值的访问与修改
  6. ASP.NET Aries 入门开发教程4:查询区的下拉配置
  7. 北交专升本计算机联锁考试题,北交《计算机联锁技术》在线作业一15春满分答案...
  8. PS教程第三课:PS界面
  9. 【转】刨根究底字符编码之十——Unicode字符集的字符编码方式
  10. ajax 链接java_如何使用ajax将下拉菜单链接到表
  11. oracle 11gr2 asm安装,OEL6.1下oracle 11gr2 ASM安装
  12. java程序计时器_求完整简单java计时器小程序代码,急!!
  13. java 下载文件的文件名乱码_java下载文件名乱码解决方法介绍
  14. IBM AI“新药发现”项目停止市场拓展
  15. java 逃逸_Java 逃逸分析
  16. 《郦波评说曾国藩家训》书摘
  17. Verilog设计遇到了Congestion问题怎么办?
  18. 安卓手机如何更改开机 关机 动画
  19. python pil模块
  20. java实现注册登录版五子棋对战平台(超详细注释,内含人机实现)

热门文章

  1. 百度Logo月度首页人物--王正华:中国低成本航空第一人
  2. 【原创】二级指针中在内存中的样子
  3. 写给笨蛋徒弟的学习手册(1)——完整C#项目中各个文件含义
  4. oracle时间运算
  5. flask+vue进阶
  6. 问题小结(二)——maven的核心功能、面向对象编程和面向接口编程的区别、抽象类和接口的区别等
  7. Verilog功能模块——AXI4-Lite协议主机-连续区间写-使用FIFO
  8. 电路 | 抗干扰技术
  9. windows下的守护进程C++
  10. 增强型的for循环linkedlist_Java: 增强for循环针对list的时候,是严格按照list的顺序依次遍历的吗?...