基础归一化方法 数学理论及其matlab代码

归一化是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为标量。在多种计算中都经常用到这种方法。以下是常见的基础归一化方法:Min-Max 归一化,Z-Score 归一化、小数定标归一化、最大值归一化、向量归一化、Log10与自然对数归一化。

基础归一化方法

一、Min-Max 归一化(最小-最大缩放)

  • 定义:Min-Max 归一化是将数据线性映射到 [0, 1] 范围内。
  • 公式

Y=\frac{X-Min(X_n))}{Max(X_n)-Min(X_n)}

其中,X_n代表归一化前的数据集合,Max()Min()代表求集合的最大与最小值,XY代表归一化前后的对应点值,下同。

 

MATLAB代码示例

% 假设我们有一个数据矩阵X,其中每行代表一个样本,每列代表一个特征
X = [1 2 3; 4 5 6; 7 8 9];% 计算每列的最小值和最大值
minX = min(X);
maxX = max(X);% 使用Min-Max归一化公式进行归一化
% 归一化公式为:(X - minX) ./ (maxX - minX)
X_normalized = (X - minX) ./ (maxX - minX);% 显示归一化后的数据
disp('归一化后的数据:');
disp(X_normalized);


优点

  • 保持数据间的比例关系,简单易行,适合有固定上下界的数据场景。
  • 统一尺度,通过将数据缩放到固定范围,有助于比较不同特征的尺度。
  • 保留分布形状,这种方法不会改变数据的分布形状,只是简单地压缩或拉伸到新的范围。

缺点

  • 对极端值(outliers)敏感,如果数据中存在极端值,所有数据都可能被压缩到很小的区间。当数据集中的最大值和最小值不稳定时,归一化结果也会不稳定。

二、Z-Score 归一化(标准化)

  • 定义:Z-Score 归一化通过减去均值再除以标准差,使得数据呈标准正态分布,均值为 0,标准差为 1。
  • 公式

Y=\sigma *X-\mu

其中,\sigma代表标准差,\mu代表均值。

代码

%%利用官方接口函数
% 假设你有一个数据矩阵X
X = [1, 2, 3; 4, 5, 6; 7, 8, 9];% 使用zscore函数进行标准化
Z = zscore(X);% 显示标准化后的数据
disp(Z);%%或直接手搓% 假设你有一个数据矩阵X,其中每行代表一个样本,每列代表一个特征
X = [1, 2, 3; 4, 5, 6; 7, 8, 9];% 计算每列的均值和标准差
mu = mean(X);
sigma = std(X);% 使用z-score公式进行归一化
% Z = (X - mu) ./ sigma;
% 这里我们需要对矩阵的每一列进行操作,所以使用bsxfun函数或者矩阵的广播功能
Z = bsxfun(@minus, X, mu);
Z = bsxfun(@rdivide, Z, sigma);% 或者,在MATLAB的新版本中,你可以直接使用矩阵的广播功能
% Z = (X - mu) ./ sigma;% 显示归一化后的数据
disp(Z);
  • 优点

    • 不受极端值的影响,适合处理具有正态分布的数据。
    • 减少异常值影响,与Min-Max归一化相比,Z-Score归一化受到异常值的影响较小,因为它考虑了整个数据的分布。
    • 标准化分布,将数据转换为标准正态分布,使得不同的特征具有相同的尺度。
    • 易于比较,在Z-Score归一化后,数据点的值可以直接解释为距离均值的标准差数目。
  • 缺点

    • 如果数据分布不是高斯分布,效果可能较差。
    • 不能保证数据范围在 [0, 1] 之间。

三、最大值归一化

  • 定义:最大值归一化是将数据除以它的绝对最大值,使数据的范围归一化到 [-1, 1] 之间。
  • 公式

Y=\frac{X}{Max(|X_n|)} 

优点

  • 简单快速,适合在数据分布中心为零时使用。

缺点

  • 仍然对极端值敏感。

四、小数定标归一化(Decimal Scaling Normalization)

  • 定义:小数定标归一化通过将数据除以一个 10 的整数次幂,使归一化后的数据范围在 [-1, 1] 之间。

公式:

Y=\frac{X}{10^j}

其中,j为人工设定的自然数

优点

  • 适合当数据范围比较固定且易于计算时使用。

五、向量归一化

  • 定义:向量归一化通常用于将向量的模长标准化,使整个向量的长度为 1。常用于文本处理、图像处理等领域。
  • 公式

向量归一化值=∥x∥x​

  • 优点

    • 在处理向量(如图像、文本等)的任务中非常有用,可以消除向量长度差异带来的影响。

六、Log10与自然对数归一化

定义

Log10:Log10归一化是指使用以10为底的对数函数对原始数据进行转换。这种方法特别适用于数据范围非常大、分布不均匀或者存在极端值的情况,因为对数函数可以有效地缩小数据的范围,同时保留数据的相对大小关系。常见的应用涉及到地震等级评估与声音的分贝。

自然对数归一化:自然对数归一化则是使用自然对数(以e为底的对数)对原始数据进行转换。自然对数在许多科学和工程领域都有广泛的应用,特别是在处理指数增长或衰减的数据时。

公式:

Log10:

Y=log_{10}X

自然数对数:

Y=log_{e}X=lnX

优点

  • 可以处理非常大的数值,将其转换为较小的范围。
  • 对于存在极端值的数据集,对数归一化能够减少这些极端值对模型的影响。
  • 保留了数据的相对大小关系,即较大的数在对数转换后仍然较大。其中:在某些数学和统计模型中,自然对数具有更简洁的形式和更好的数学性质,如正态分布的对数变换后仍然保持正态分布。

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

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

相关文章

计算机视觉算法

计算机视觉算法是人工智能领域中的重要技术之一,它使计算机能够“看”并理解图像或视频内容。以下是对计算机视觉算法的详细介绍: 一、定义与目标 计算机视觉算法是一组计算模型和数学方法的组合,旨在让计算机能够自动解析图像和视频中的信息…

【Elasticsearch】Elasticsearch集成Spring Boot

Elasticsearch集成Spring Boot 概述 Spring Data Elasticsearch 介绍一、环境初始化二、实战入门1、定义数据实体类2、定义Dao层3、框架集成-SpringData-集成测试-索引操作4、框架集成-SpringData-集成测试-文档操作5、框架集成-SpringData-集成测试-文档搜索 概述 Spring Data…

Kubernetes 调度器调度策略的资源分配不均问题如何解决?

Kubernetes 调度器调度策略的资源分配不均问题如何解决? 在 Kubernetes 中,调度器调度策略可能会导致资源分配不均的问题,可以通过以下几种方法来解决: 一、资源配额和限制 设置命名空间资源配额: 可以为不同的命名空间设置资源配额,限制该命名空间可以使用的 CPU、内存…

漫漫数学之旅038

文章目录 经典格言数学习题古今评注名人小传 - 古斯塔夫福楼拜 经典格言 诗歌是一门像几何一样严格的科学。——古斯塔夫福楼拜(Gustave Flaubert) 古斯塔夫福楼拜将诗歌比作几何学,强调了诗歌创作的严谨性。他认为诗歌不仅仅是情感的流露&a…

前端md5加密

npm下载 npm install --save ts-md5页面引入 import { Md5 } from ts-md5使用 const md5PwdMd5.hashStr("123456")md5Pwd(加密后的数据) .toUpperCase()方法转大写

植物神经紊乱不用怕,这些维生素来帮你!

在现代快节奏的生活中,植物神经紊乱已成为一种常见的健康问题。你是否经常感到焦虑、失眠、疲劳,甚至消化不良?这些可能都是植物神经紊乱的表现。幸运的是,通过适当补充维生素,我们可以有效缓解症状,恢复身…

华为ENSP--ISIS路由协议

项目背景 为了确保资源共享、办公自动化和节省人力成本,公司E申请两条专线将深圳总部和广州、北京两家分公司网络连接起来。公司原来运行OSFP路由协议,现打算迁移到IS-IS路由协议,张同学正在该公司实习,为了提高实际工作的准确性和…

二分查找习题篇(下)

二分查找习题篇(下) 1.山脉数组的峰顶索引 题目描述: 给定一个长度为 n 的整数 山脉 数组 arr ,其中的值递增到一个 峰值元素 然后递减。 返回峰值元素的下标。 你必须设计并实现时间复杂度为 O(log(n)) 的解决方案。 示例 1: 输入&#xf…

playground.tensorflow神经网络可视化工具

playground.tensorflow 是一个可视化工具,用于帮助用户理解深度学习和神经网络的基本原理。它通过交互式界面使用户能够构建、训练和可视化简单的神经网络模型。以下是一些主要的数学模型和公式原理,它们在这个平台中被应用: 1. 线性模型 线…

一篇文章让你明白Go语言之数组的定义与用法

Golang数组 1. 数组的声明示例 2. 数组的初始化初始化示例 3. 访问和修改数组元素访问和修改元素的示例 4. 数组的遍历遍历数组的示例 5. 多维数组二维数组的示例 6. 数组是值类型示例:数组的值传递 7. 数组与切片的区别总结 在 Go 语言中,数组是一种固定…

LSM-TREE和SSTable

一、什么是LSM-TREE LSM Tree 是一种高效的写优化数据结构,专门用于处理大量写入操作 在一些写多读少的场景,为了加快写磁盘的速度,提出使用日志文件追加顺序写,加快写的速度,减少随机读写。但是日志文件只能遍历查询…

SDL线程

文章目录 SDL线程相关 SDL线程相关 SDL线程创建:SDL_CreateThreadSDL线程等待: SDL_WaitThreadSDL互斥锁 :SDL_CreateMutex/SDL_DestoryMutexSDL锁定互斥: SDL_LockMutex/SDL_UnlockMutexSDL条件变量:SDL_CreateCond/SDL_DestoryCondSDL条件变量 等待通知: SDL_Con…

Vite与Vue Cli的区别与详解

它们的功能非常相似,都是提供基本项目脚手架和开发服务器的构建工具。 主要区别 Vite在开发环境下基于浏览器原生ES6 Modules提供功能支持,在生产环境下基于Rollup打包; Vue Cli不区分环境,都是基于Webpack。 在生产环境下&…

STM32实现串口接收不定长数据

原理 STM32实现串口接收不定长数据,主要靠的就是串口空闲(idle)中断,此中断的触发条件与接收的字节数无关,只有当Rx引脚无后续数据进入时(串口空闲时),认为这时候代表一个数据包接收完成了&…

jQuery UI 使用

jQuery UI 使用 jQuery UI 是一个建立在 jQuery JavaScript 库之上的用户界面交互、特效、小部件和主题的库。它提供了一系列的交互组件,如拖动、排序、选择等,以及小部件,如自动完成、日期选择器、滑块等。此外,jQuery UI 还提供了一套主题,使得开发者可以轻松地定制应用…

QToolbar工具栏下拉菜单不弹出有小箭头

这里说了怎么弹出:Qt 工具栏QToolBar添加带有弹出菜单的QAction_qt如何将action添加到工具栏-CSDN博客 然后如果你是在UI里面建立的action,并拖到了toolbar,并在代码中设置菜单,例如: ui->mytoolbar->setMenu(…

大数据专业为什么要学习Hadoop课程

在当今信息爆炸的时代,大数据成为了影响各行各业的重要因素,而Hadoop作为大数据处理的核心技术之一,自然成为大数据专业学生需要掌握的一项重要技能。本文将详细探讨大数据专业为何要学习Hadoop课程,帮助读者理解其必要性和实际应…

【C++】argc与argv

argc是一个整数&#xff0c;表示命令行参数的数量&#xff0c;包括程序的本身名称 argv是一个指向字符指针数组的指针&#xff0c;其中每个字符指针指向一个命令行参数的字符串 通常argv[0]存储程序的名称&#xff0c;argv[1], argv[2]等存储其他命令行参数值 #include<io…

DevExpress JS ASP.NET Core v24.1亮点 - 支持DateOnly/TimeOnly类型

DevExtreme拥有高性能的HTML5 / JavaScript小部件集合&#xff0c;使您可以利用现代Web开发堆栈&#xff08;包括React&#xff0c;Angular&#xff0c;ASP.NET Core&#xff0c;jQuery&#xff0c;Knockout等&#xff09;构建交互式的Web应用程序。从Angular和Reac&#xff0c…

【HarmonyOS】键盘遮挡输入框UI布局处理

【HarmonyOS】键盘遮挡输入框UI布局处理 问题背景&#xff1a; 在开发输入框UI时&#xff0c;特别是登录页面的密码输入框靠下&#xff0c;或者是评论底部的pop弹框。 当我们输入框获得焦点后&#xff0c;键盘自下而上显示&#xff0c;一般情况下会遮挡住我们的UI布局。 导致…