归一化学习

归一化

1. 归一化(Normalization)

归一化是数据处理中的一种方法,用来将不同量纲的数据进行尺度上的统一,使得数据落在一个相对一致的范围内,常见的目标区间是 [0, 1] 或 [-1, 1]。归一化的目的是消除不同特征或变量之间的量纲差异,使得它们可以更好地进行比较或参与机器学习模型的训练。

归一化的常见形式:

  • 最小-最大归一化(Min-Max Normalization):将数据线性变换到 [0, 1] 的范围。
  • Z-score 标准化(Z-score Normalization):通过减去均值并除以标准差,将数据转化为标准正态分布。
  • 比例归一化(Proportional Normalization):通过数据除以总和,转化为比例数据。

2. 归一化偏差

归一化偏差指的是通过对数据进行归一化后,计算相对于某个参考点(通常是均值)的偏差。归一化偏差通常是为了衡量数据在归一化后相对某个基准的偏离程度。

例如:
对于样本
x i x_i xi
和均值
x ˉ \bar{x} xˉ
,归一化偏差可以表示为:
y i = x i − x ˉ x ˉ y_i = \frac{x_i - \bar{x}}{\bar{x}} yi=xˉxixˉ
这个公式表示每个样本值相对于均值的偏差,并通过均值归一化,使得偏差可以表示为一个无量纲的比例。

3. 比例归一化

比例归一化(Proportional Normalization)是归一化的一种形式,指的是将每个数据点按数据总和进行归一化,使得数据的总和变为 1。每个样本值
x i x_i xi
归一化后为:
y i = x i ∑ x i y_i = \frac{x_i}{\sum{x_i}} yi=xixi

  • 意义:这种方法常用于分析比例、概率等情况,比如在统计中需要得到各部分占总体的比例。
  • 应用场景:比例归一化常用于概率分布、份额分析、分配权重等情形。它确保数据的相对重要性得到保持,同时消除了绝对数值的影响。

4. 其他类型的归一化

除了最常见的几种归一化方法,还有其他的归一化形式,针对不同场景和需求:

4.1. Z-score 标准化

Z-score 归一化也称为标准化(Standardization),将数据调整到一个均值为 0、标准差为 1 的分布中。公式为:
z i = x i − μ σ z_i = \frac{x_i - \mu}{\sigma} zi=σxiμ
其中,
μ \mu μ
是数据的均值,
σ \sigma σ
是数据的标准差。标准化后的数据服从标准正态分布,适合处理有正态分布特性的变量。

4.2. 对数归一化

通过取对数将数据缩小,尤其适用于数值分布较大或者偏态的数据。对数归一化的公式为:
y i = log ⁡ ( x i ) y_i = \log(x_i) yi=log(xi)
可以有效减小数据的差距,使得数据的分布更加均匀。

4.3. 向量归一化

在机器学习中,向量归一化是将向量缩放到单位长度,用于某些算法(如 KNN、SVM)中。公式为:
v n o r m = v ∣ ∣ v ∣ ∣ \mathbf{v}_{norm} = \frac{\mathbf{v}}{||\mathbf{v}||} vnorm=∣∣v∣∣v
其中
∣ ∣ v ∣ ∣ ||\mathbf{v}|| ∣∣v∣∣
是向量的范数(如 L2 范数)。这种归一化确保了数据的方向性保持不变,而长度变为 1。

4.4. 非线性归一化

使用非线性函数(如 Sigmoid、Tanh)将数据缩放到特定的范围内,常见于神经网络中的激活函数处理。Sigmoid 归一化的公式为:
y i = 1 1 + e − x i y_i = \frac{1}{1 + e^{-x_i}} yi=1+exi1
这种归一化适合处理具有非线性特征的数据,将数据限制在 (0, 1) 范围内。

总结:

  • 归一化是为了消除量纲差异,使数据在统一尺度下进行处理。
  • 归一化偏差衡量样本相对均值的偏离程度,是一种相对比较的方式。
  • 比例归一化通过将数据按总和进行归一化,适用于比例和权重分析。
  • 其他常见的归一化方法还有 Z-score 标准化、对数归一化、向量归一化等,分别适用于不同的数据特性和应用场景。

如何将数据归一化到[-1, 1]这个区间?

要将数据归一化到 [-1, 1] 区间,可以使用最小-最大归一化的变种,通过线性缩放将数据映射到该区间。

归一化公式:

给定一个数据集 ( X ),其中
x min x_{\text{min}} xmin
是数据的最小值,
x max x_{\text{max}} xmax
是数据的最大值。将数据 xi 归一化到 [-1, 1] 区间的公式如下:

x i ′ = 2 ⋅ ( x i − x min ) x max − x min − 1 x'_i = \frac{2 \cdot (x_i - x_{\text{min}})}{x_{\text{max}} - x_{\text{min}}} - 1 xi=xmaxxmin2(xixmin)1

解释:

  • xi:原始数据中的某个值。
  • xmin:原始数据中的最小值。
  • xmax:原始数据中的最大值。
  • x`i:归一化后的值,在 [-1, 1] 之间。

归一化步骤:

  1. 计算原始数据的最小值和最大值:找出数据集中的 ( x_{\text{min}} ) 和 ( x_{\text{max}} )。
  2. 将每个数据缩放:按照公式,对每个数据点进行缩放,确保数据点的值落在 [-1, 1] 之间。
  3. 应用到整个数据集:将这个公式应用到整个数据集中。

示例:

假设你有一组数据 ( X = [10, 20, 30, 40, 50] ),你想将其归一化到 [-1, 1] 区间。按照步骤:

  1. 计算最小值和最大值

    • xmin= 10
    • xmax= 50
  2. 归一化每个数据点
    x i ′ = 2 ⋅ ( x i − 10 ) 50 − 10 − 1 = 2 ⋅ ( x i − 10 ) 40 − 1 x'_i = \frac{2 \cdot (x_i - 10)}{50 - 10} - 1 = \frac{2 \cdot (x_i - 10)}{40} - 1 xi=50102(xi10)1=402(xi10)1

    • 当 xmin= 10,归一化结果为 ( -1 )
    • 当 xmax= 50,归一化结果为 ( 1 )
    • 其他数据的归一化结果介于 [-1, 1] 之间。

Python 实现:

可以通过 Python 代码实现该过程:

import numpy as np# 原始数据
X = np.array([10, 20, 30, 40, 50])# 计算最小值和最大值
x_min = np.min(X)
x_max = np.max(X)# 归一化到 [-1, 1]
X_normalized = 2 * (X - x_min) / (x_max - x_min) - 1print(X_normalized)

输出:

[-1.  -0.5  0.   0.5  1. ]

总结:

归一化到 [-1, 1] 区间是一种常见的处理方法,尤其在需要标准化数据到统一尺度、避免数据因量纲差异而影响模型表现时非常有用。这种归一化在机器学习和数据预处理中有广泛的应用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/453782.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGLM4重磅开源! 连忙实操测试一波,效果惊艳,真的好用!附带最新相关资料和喂饭级实操推理教程!!

本文目录 GLM4重磅开源啦 GLM4系列版本介绍 GLM4大模型能力测评结果 经典测评任务结果 长文本能力 工具调用能力 多模态能力 手把手实操GLM-4-9B-Chat推理预测&&效果展示 GLM4运行硬件和环境要求 配置对应的库环境 使用peftbitsandbytes 进行4位量化推理 进…

Java基础12-特殊文件和日志技术

十二、特殊文件和日志技术 1、特殊文件 properties:用来存储键值对数据。 xml:用来存储有关系的数据。 1.1 properties文件 特点:存储键值对,键不能重复,文件后缀一般是.properties结尾的。 properties:是…

Docker设置日志滚动

问题描述 Docker 容器中的进程会将打印到控制台(console)的日志保存到容器的目录下,默认的 Docker 配置不带有日志的回滚。会在自己的容器目录下往同一个日志文件中不停写入,最后会导致磁盘空间占满的问题。 解决方案 方案一:全局范围内修…

利用Docker搭建一套Mycat2+MySQL8一主一从、读写分离的最简单集群(保姆教程)

文章目录 1、Mycat介绍1.1、mycat简介1.2、mycat重要概念1.3、Mycat1.x与Mycat2功能对比1.2、主从复制原理 2、前提准备3、集群规划4、安装和配置mysql主从复制4.1、master节点安装mysql8容器4.2、slave节点安装mysql8容器4.2、配置主从复制4.3、测试主从复制配置 5、安装mycat…

微信小程序canvas 生成二维码图片,画图片,生成图片,将两个canvas结合并保存图片

**需求实现步骤如下 先定义两个canvas一个canvas myQrcode画二维码的图片另一个canvas mycanvas画一个背景图,并把二维码画到这个canvas上,mycanvas这个canvas生成一张图片,返回图片的临时路径最后保存图片到手机** 首先wxml,新版微信小程序…

【SpringCloud】04-Gateway网关登录校验

1. 网关请求处理流程 2. 网关过滤器 3. 网关实现登录校验 Component // 参数构造器 RequiredArgsConstructor public class AuthGlobalFilter implements GlobalFilter, Ordered {private final AuthProperties authProperties;private final JwtTool jwtTool;private final A…

数据结构——笛卡尔树详解

数据结构——笛卡尔树 1,笛卡尔树的介绍2,笛卡尔树的构建3,笛卡尔树的代码实现 1,笛卡尔树的介绍 前面我们讲过《堆》和《二叉搜索树》,能不能把这两种数据结构的特性结合起来构造一棵新的树呢?当然是可以…

Qt-界面优化控件样式设置(72)

目录 描述 QPushButton 自定义复选框 输入框 列表框 菜单 实现登入界面 设置背景图 改变样式表 描述 这里介绍一些控件的样式设置 QPushButton 相关属性 font-size设置⽂字⼤⼩.border-radius设置圆⻆矩形. 数值设置的越⼤, ⻆就 "越圆".background-colo…

离散数学 第二讲 特殊集合和集合间关系 笔记 [电子科大]王丽杰

1.2 特殊集合与集合间关系 空集 不含任何元素的集合叫做空集(empty set),记作∅. 空集可以符号化为 ∅ { x ∣ x ≠ x } ∅ \{ x|x ≠ x\} ∅{x∣xx} . 空集是绝对唯一的。 全集 针对一个具体范围,我们考虑的所有对象的集合叫做全集(universal se…

vulnhub-Kioptrix4靶机的测试报告

目录 一、测试环境 1、系统环境 2、使用工具/软件 二、测试目的 三、操作过程 1、信息搜集 2、Getshell 3、提权 udf提权 四、结论 一、测试环境 1、系统环境 渗透机:kali2021.1(192.168.202.134) 靶 机:Linux 2.6.24 2、使用工具/软件 …

Oracle分布式数据库的安装遇到的问题【已解决】:找不到scott用户、出现【INS-30014】错误、oracle登录适配器错误

Oracle分布式数据库的安装遇到的问题【已解决】:找不到scott用户、出现【INS-30014】错误、oracle登录适配器错误 安装oracle19c软件利用Database Configuration Assistant,创建orcl数据库第一步:在开始菜单找到Oracle,点击“Data…

SpringColoud GateWay 核心组件

优质博文:IT-BLOG-CN 【1】Route路由: Gateway的基本构建模块,它由ID、目标URL、断言集合和过滤器集合组成。如果聚合断言结果为真,则匹配到该路由。 Route路由-动态路由实现原理: 配置变化Apollo 服务地址实例变化…

Axure使用echarts详细教程

本次使用的axure版本为rp9,下面是效果图。 接下来是详细步骤 【步骤1】在axure上拖一个矩形进来,命名为myChart(这个根据实际情况来,和后面的代码对应就好) 【步骤2】 点击交互->选择加载时->选择打开链接->链接外部地址 点击fx这个符号 【步骤3】在弹…

前端学习笔记(1.0)

在开发项目时,需要使用符号来代替书写./和../等麻烦的路径书写,所以就遇到了下面的问题。 输入没有路径提示 我们都知道,设置是通过配置vite等脚手架工具的配置文件,设置别名即可。 但是如果需要在使用的时候需要出现路径提示&…

虚拟滚动列表如何实现?

highlight: a11y-dark 虚拟滚动列表&#xff0c;虚拟滚动的关键在于只渲染当前视口内可见的数据项&#xff0c;而不是一次性渲染所有数据项。这可以显著提高性能&#xff0c;尤其是在处理大量数据时。 以下是一个完整的虚拟滚动列表的示例代码&#xff1a; <!DOCTYPE htm…

React高级Hook

useReducer useReducer 是 React 提供的一个 Hook&#xff0c;用于在函数组件中使用 reducer 函数来管理组件的 state。它类似于 Redux 中的 reducer&#xff0c;但仅用于组件内部的状态管理。useReducer 可以使复杂的状态逻辑更加清晰和可维护。 基本用法 useReducer 接收…

1.前提配置 关防火墙 关selinux

1.前提配置 关防火墙 关selinux 2.安装web服务程序nginx 未安装则需重新设置挂载点 若已安装&#xff0c;则查看系统中是否存在 3.当前主机添加多地址&#xff08;ip a&#xff09; 配置了三个IP地址 查看IP地址是否配置成功 4.自定义nginx配置文件通过多地址区分多网站 /…

使用JMeter进行Spring Boot接口的压力测试

使用 Apache JMeter 对接口进行压力测试是一个相对简单的过程。以下是详细的步骤&#xff0c;包括安装、配置和执行测试计划。 1. 下载和安装 JMeter 下载 JMeter 从 JMeter 官方网站https://jmeter.apache.org/download_jmeter.cgi 下载最新版本的 JMeter。 解压缩 将下载的 …

02.数据结构介绍顺序表、链表简述+对比

目录 一、什么是数据结构 二、线性表 三、顺序表 四、链表 五、顺序表和链表的区别 一、什么是数据结构 数据结构是由“数据”和“结构”两个词组合而来。 数据&#xff1a;常见的数值1、2、3......&#xff0c;网页里的文字图片信息等都是数据。 结构&#xff1a;组织数据…

【从零开始的LeetCode-算法】3184. 构成整天的下标对数目 I

给你一个整数数组 hours&#xff0c;表示以 小时 为单位的时间&#xff0c;返回一个整数&#xff0c;表示满足 i < j 且 hours[i] hours[j] 构成 整天 的下标对 i, j 的数目。 整天 定义为时间持续时间是 24 小时的 整数倍 。 例如&#xff0c;1 天是 24 小时&#xff0c…