【机器学习】为什么需要对数值型的特征做归一化(Normalization)?

2023-11-17

一、概念定义

在数据处理场景中特征缩放 = 数据规范化,这个两个名词是相同的。

Feature scaling = data normalization

一个数字按照一定规则变小或者变大,这个数字就是特征,变小就是缩,变大就是放。

特征缩放是一种用于规范自变量或数据特征范围的方法。

在数据处理中,这也称为数据规范化,通常在数据预处理步骤中执行。

二、标准化、归一化的原因、用途

2.1 原因

  1. 统计建模中,如回归模型,自变量的量纲不一致导致了回归系数无法直接解读或者错误解读;为了消除数据特征之间的量纲影响,我们需要对特征进行归一化处理,使得不同指标之间具有可比性;
  2. 机器学习任务和统计学任务中有很多地方要用到“距离”的计算,比如PCA,比如KNN,比如K-means等等,假使算欧式距离,不同维度量纲不同可能会导致距离的计算依赖于量纲较大的那些特征而得到不合理的结果;
  3. 参数估计时使用梯度下降,在使用梯度下降的方法求解最优化问题时, 归一化/标准化后可以加快梯度下降的求解速度,即提升模型的收敛速度。

举例:

分析一个人的身高和体重对健康的影响,如果使用米(m)和千克(kg)作为单位,那么身高特征会在1.6~1.8m的数值范围内,体重特征会在50~100kg的范围内,分析出来的结果显然会倾向于数值差别比较大的体重特征。

想要得到更为准确的结果,就需要进行特征归一化(Normalization)处理,使各指标处于同一数值量级,以便进行分析。

三、数据归一化的影响

归一化之后等高线变得不再崎岖, x 1 x_1 x1 x 2 x_2 x2的更新速度变得更为一致,容易更快地通过梯度下降找到最优解。迭代次数变少,减小梯度下降算法的过程,从而加速模型的生成。

在这里插入图片描述

四、常用的3种归一化方法

线性函数归一化(最大最小值归一化)和零均值归一化。

4.1 归一化公式

4.1.1 线性归一化(Min-Max Scaling,即我们一般指的归一化)

它对原始数据进行线性变换,使结果映射到 [ 0 , 1 ] [0, 1] [0,1]的范围,实现对原始数据的等比缩放,最通用:
X n o r m = X − X m i n X m a x − X m i n X_{norm}=\frac{X-X_{min}}{X_{max}-X_{min}} Xnorm=XmaxXminXXmin
其中 X n o r m X_{norm} Xnorm为归一化后的数据, X X X为原始数据, X m a x X_{max} Xmax X m i n X_{min} Xmin分别为原始数据集的最大值和最小值。

注意:对异常值十分灵敏,异常值容易造成偏差!

4.1.2 均值归一化(Mean Normalization)

X = X − − X m a x ( X ) − m i n ( X ) X = \frac{X-\frac{-}{X}}{max(X)-min(X)} X=max(X)min(X)XX

4.1.3 零均值归一化(Z-Score Normalization,通常叫标准化)

给予原始数据的均值 μ μ μ(mean)和标准差 σ σ σ(standard deviation)进行数据的标准化。

它会将原始数据映射到均值为0、标准差为1的分布上。
z = x − μ δ z = \frac{x-\mu}{\delta} z=δxμ

五、标准化 vs 归一化

在这里插入图片描述

六、哪些模型必须归一化

  1. 在分类、聚类算法中,需要使用距离来度量相似性的时候、或者使用PCA技术进行降维的时候,标准化(Z-score standardization)表现更好

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

实际应用中,通过梯度下降法求解模型的通常需要归一化,包括线性回归、逻辑回归、支持向量机、神经网络等。

七、哪些模型不需要归一化?

不是所有的模型都需要做归一的,比如模型算法里面有没关于对距离的衡量,没有关于对变量间标准差的衡量。

  1. 决策树模型不要要归一化,他采用算法里面没有涉及到任何和距离等有关的,看的是信息增益比,所以在做决策树模型时,通常是不需要将变量做标准化的

  2. 概率模型不需要归一化,因为它们不关心变量的值,而是关心变量的分布和变量之间的条件概率

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【机器学习】为什么需要对数值型的特征做归一化(Normalization)? 的相关文章

  • [NAS]AutoML: A Survey of the State-of-the-Art

    AutoML A Survey of the State of the Art 自动机器学习 无需人类辅助自动进行机器学习 Abstract 本文根据AutoML的处理流程来对自动机器学习进行介绍 包括 数据准备 特征工程 超参数优化和神经

随机推荐

  • c++STL容器vector的复制

    将一个vector复制到另一个vector中 将一个vector v1 复制到另一个vector v2 中有两种方法 我知道的两种 囧 1 v2 v1 2 v2 assign v1 begin v1 end 两种方法的效果是一样的 vect
  • C++语言学习日志2.26

    初入C 跟C语言很多都很相似 主要从不同之处学习 1 I O流控制 流是一种抽象概念 他代表了数据的无结构化传递 按照流的方式进行输入输出 数据被当成无结构的字节序或字符序列 从流中取得数据的操作称为提取操作 而向流中添加数据的操作称为插入
  • 面试必问的MySQL锁与事务隔离级别

    之前多篇文章从mysql的底层结构分析 sql语句的分析器以及sql从优化底层分析 还有工作中常用的sql优化小知识点 面试各大互联网公司必问的mysql锁和事务隔离级别 这篇文章给你打神助攻 一飞冲天 锁定义 锁是计算机协调多个进程或线程
  • centos中apache使用教程

    一 安装Apache服务 1 检查是否安装了Apache服务器软件 rpm qa grep i httpd 2 查看apache2的命令 httpd V 3 停止和重启apache 其中HTTPD ROOT和SERVER CONFIG FI
  • 怎么成为一个软件架构师

    的确没想到随手写的东西有那么多的回复 不管怎样还是挺高兴的 在这里谢谢大家的关注了 其实做了这么多年的技术脑子里总会跳出很多的想法 但很少有时间静下来仔细地思考思考 写写博客也算是一种自我归纳和总结吧 软件架构师 这个名词也不知是什么时候进
  • 【三维重建学习之路01】点云ply文件的读写、修改

    文章目录 1 前言 2 PLY文件格式 3 读文件 变量 库 查看头文件 vertex信息 数据类型 读文件函数 按行阅读检查 4 写文件 参考 1 前言 关于使用python读写ply的比较清楚的教程很少 自己也是新手 摸索中 2 PLY
  • linux虚拟机重启后,运行nmtui提示NetworkManaer 未运行

    环境 centOS 8 虚拟机重启后 输入ifconfig 发现网卡丢失 1 重启NetworkManaer systemctl start NetworkManager 2 输入nmtui nmtui 编辑连接 笔者网络小白 只会用自动
  • 雅特力AT32F403A, 国产芯片PIN TO PIN 替代STM32F103

    中美贸易摩擦日渐加剧 美国从各个方面到处打压中国 半导体行业也收到一定冲击 逼迫国内企业不得不准备产品国产化方案 自从华为被美国制裁之后 国内的很多手机厂商明白了一个道理 爹有娘有 不如自己有 于是各大厂商纷纷走上了芯片国产化的道路 意法半
  • java Hashtable及其子类Properties 源码分析(通俗易懂)

    目录 一 前言 二 Hashtable详解 1 简介 2 特点 3 底层实现 4 HashMap VS Hashtable 三 Properties详解 1 简介 2 特点 3 具体使用 可以不看 四 完结撒 一 前言 大家好 本篇博文是对
  • 【已解决--2021报错】is not a supported wheel on this platform-解决安装simplejson失败的问题

    已解决 2021报错 is not a supported wheel on thisplatform 解决安装simplejson失败的问题 1 问题描述 直接在pycharm中pip安装simplejson失败 然后网上找了很多教程 但
  • 知网的爬取 很简单

    对于知网能爬出来的东西 首先说一下 论文的题目 时间 作者 摘要等信息 本文主要对搜索界面进行爬取 对于知网的爬虫可以说挺简单的 其难点在于有一个二次请求 通过断点分析youfiddler分析有两个要注意的url一个是红色的一个是橘色的 先
  • Javacv+Nginx实现rtsp转rtmp实现web端直播方式

    前言 前面的文章中使用websocket的方案在web端实现rtsp播放 因为各种原因 现需要重新写一套方案 不废话 上才艺 补充 项目中需求可能要同时观看多个摄像头 将本项目放开限制使用多个摄像头时 就会发现相机之间的切换加载时间及视频流
  • Android:实现一种浮动选择菜单的效果

    前几天更新了一下我手机上的百阅软件 上面的浮动对话框选择很好看 就模仿了一下 先看一下运行效果 主要原理是在dialog里扔进一个GridView 可以作为一个组件使用 源码如下 对话框使用的layout grid dialog xml
  • Lumen 5.2 中配置邮件

    本文转自 https laravel china org topics 1974 Lumen中的邮件配置好了之后还是很简单的 但是配置过程官方文档省略了太多 先来扒一扒遇到的坑 Class mailer does not exist 这个是
  • Mysql内置函数全解析——Mysql初级(三)

    一 前言 在关系型数据库使用的过程中 我们总会对DB里面的数据做各种不同形式的转换 字符串处理等基本操作 本文将会比较系统的学习总结Mysql中的各种内置函数 这是一个系列的文章 感兴趣的小伙伴可以关注一下哦 本文的行文思路是这样的 因为M
  • 微信小程序——获取绑定事件元素的ID

    小程序list数据带值跳转 一般直接通过设置item的id来标识或者通过设置键值data xxxx的方式标识 如下图所示 解析出来的结果如下图 我们看到它在元素上绑定了一个checkSchoolLogin事件 触发这个事件时需要获取该元素的
  • 关于单链表结构体定义结点时 LNode *LinkList的理解

    typedef struct LNode ElemType data 数据域 struct LNode next 指针域 LNode LinkList 先说结论 这个就可以直接理解为 第一个是便于定义变量的类型为LNode 如果没有使用ty
  • springboot配置来连接多个mysql数据库

    1 在yml里配置多数据库 spring datasource app1 jdbc url jdbc mysql localhost 3306 data1 useUnicode true characterEncoding UTF 8 se
  • leetcode-143-重排链表

    题意描述 给定一个单链表 L 的头节点 head 单链表 L 表示为 L0 L1 Ln 1 Ln 请将其重新排列后变为 L0 Ln L1 Ln 1 L2 Ln 2 不能只是单纯的改变节点内部的值 而是需要实际的进行节点交换 解题思路 Ali
  • 【机器学习】为什么需要对数值型的特征做归一化(Normalization)?

    目录 为什么需要对数值型的特征做归一化 一 概念定义 二 标准化 归一化的原因 用途 2 1 原因 三 数据归一化的影响 四 常用的3种归一化方法 4 1 归一化公式 4 1 1 线性归一化 Min Max Scaling 即我们一般指的归