《机器学习》——数据标准化(0~1标准化,z标准化)
文章目录
- 数据标准化
- 一、什么是标准化
- 二、常用标准化
- 0~1标准化
- z标准化
- 三、注意事项
数据标准化
一、什么是标准化
- 数据标准化是一种数据预处理技术,用于将数据按照一定的规则进行变换,使得不同特征或变量具有可比性和一致性。
- 作用
- 消除量纲影响
在实际数据集中,不同的特征可能具有不同的单位和数量级。例如,在一个包含身高(单位:厘米)和体重(单位:千克)的数据集中,身高的数值范围可能是 150 - 200,而体重的数值范围可能是 40 - 100。如果直接使用这些原始数据进行数据分析,如聚类或距离计算,身高的数值可能会因为其较大的数量级而在计算中占据主导地位,从而掩盖体重特征的重要性。数据标准化可以将这些不同量纲的数据转换到同一尺度上。 - 提升模型性能
在机器学习和数据挖掘中,许多算法(如 K - 近邻算法、支持向量机等)的性能依赖于数据的分布情况。标准化后的数据可以使模型更容易收敛,提高模型的准确性和稳定性。例如,在神经网络的训练过程中,标准化的数据有助于梯度下降算法更快地找到最优解,减少训练时间并且避免梯度消失或爆炸等问题。 - 方便数据比较和融合
当需要将来自不同数据源的数据进行合并或者比较时,数据标准化是必不可少的。例如,在金融领域,要整合不同银行的客户信用评分数据,这些数据可能由于银行采用的不同评分标准和尺度而无法直接比较。通过标准化,可以将这些数据转换到统一的标准下,便于进行综合评估。
- 消除量纲影响
- 优点和缺点
- 优点
- 提高模型性能
在机器学习算法中,如线性回归、神经网络等,标准化后的数据可以使模型更快地收敛。以梯度下降算法为例,标准化能够确保不同特征在更新参数时具有相似的步长,避免因某些特征的数值范围过大而导致梯度下降路径曲折,从而加速模型训练过程。例如,在预测房价的线性回归模型中,如果房屋面积(单位:平方米)和房间数量这两个特征没有进行标准化,房屋面积的数值范围可能远大于房间数量,这会使得模型在训练时过度关注房屋面积这个特征,而标准化后可以让模型更均衡地学习每个特征的重要性,提升预测准确性。 - 增强数据可比性
标准化后的数据能够方便地比较不同特征之间的相对差异。例如,在比较学生的各科成绩时,语文成绩(满分 150 分)和数学成绩(满分 100 分)的原始分数不具有直接可比性。通过标准化,可以将它们转换到相同的尺度下,比如 Z - score 标准化后,就能更直观地看出学生在这两门学科中的相对位置,是高于平均水平还是低于平均水平,进而综合评估学生的学习情况。 - 便于数据融合和集成
当整合来自多个数据源的数据时,标准化可以消除不同数据源由于量纲、数据分布等差异带来的影响。例如,在医疗数据整合中,不同医院的检查指标可能有不同的单位和正常范围。通过标准化,这些数据可以被整合到一个统一的框架下,便于后续的数据分析,如构建疾病诊断模型或进行健康风险评估。 - 提升聚类和分类效果
在聚类算法(如 K - Means 聚类)和分类算法(如支持向量机)中,标准化有助于提高算法的准确性。以 K - Means 聚类为例,标准化后的数据可以使聚类中心的初始化更加合理,并且在计算样本与聚类中心的距离时,能够更准确地反映样本之间的相似性。如果不进行标准化,某些特征可能会因为数值较大而主导聚类结果,导致聚类效果不佳。
- 提高模型性能
- 缺点
- 丢失原始数据信息
在标准化过程中,数据的原始尺度和分布信息会部分丢失。例如,通过最小 - 最大标准化将数据映射到 [0, 1] 区间后,无法直接从标准化后的数据中看出原始数据的具体数值范围。对于一些需要了解原始数据真实情况的应用场景,如数据审计或对数据原始分布特征有严格要求的统计分析,这可能会带来不便。 - 依赖数据分布假设
某些标准化方法对数据分布有一定的假设。例如,Z - score 标准化假设数据是正态分布或者近似正态分布。如果数据实际不符合这个假设,标准化后的结果可能不能很好地达到预期效果。比如,对于具有明显偏态分布的数据,Z - score 标准化可能会扭曲数据的相对关系,使得在后续的数据分析中产生误导。 - 增加计算成本和时间
对于大规模数据集,进行数据标准化需要额外的计算来确定标准化参数(如均值、标准差、最大值、最小值等),并且需要对每个数据点进行转换操作。这会增加数据预处理的时间和计算资源消耗。例如,在处理包含数百万条记录的数据仓库中的数据时,数据标准化可能会成为整个数据处理流程中的一个性能瓶颈。
- 丢失原始数据信息
- 优点
二、常用标准化
0~1标准化
公式中x为原始数据,min(x)为一组特征值的最小值,max(x)为最大值。
0~1标准化的范围就像它的名字一样在[0-1]的范围。
在python中,可以使用sklearn.preprocessing.MinMaxScaler类来实现0~1标准化
例子:
import numpy as np
from sklearn.preprocessing import MinMaxScaler# 创建一个包含随机数值的二维数组,模拟特征数据集
# 假设有5个样本,每个样本有3个特征
np.random.seed(0) # 抛出一个随机种子,为了让后面每次运行时生成的随机数值,都与第一次相同
data = np.random.rand(5, 3) * 10 # 生成一个5x3的数组,每个元素的值在0到10之间
print("原始数据:")
print(data)# 使用MinMaxScaler进行归一化
min_max_scaler = MinMaxScaler()
data_min_max = min_max_scaler.fit_transform(data)
print("\nMinMaxScaler归一化后的数据:")
print(data_min_max)
"""
原始数据:
[[5.45374108 6.36285388 6.89790337][4.22031847 9.29446541 1.72869836][6.29878395 8.68105164 8.78970701][7.65555541 3.81574752 1.61238819][9.50247279 8.58981375 9.87706441]]MinMaxScaler归一化后的数据:
[[0.23350749 0.4649092 0.63953082][0. 1. 0.01407317][0.39348822 0.88803699 0.86843315][0.65034771 0. 0. ][1. 0.87138384 1. ]]
"""
z标准化
- Z标准化也称为Z-score标准化或标准差标准化是一种数据预处理技术,用于将数据转化为均值为0,标准差为1的标准正态分布。这种方法在数据分析和机器学习中非常常见,特别是当不同特征具有不同的尺度或单位时,通过Z标准化可以使这些特征在相同的尺度上进行比较和处理。
- x 是原始数据。
- μ 是所有样本数据的均值。
- σ 是所有样本数据的标准差。
- z 是转化后的数据,即Z分数。
- 计算步骤
- 计算均值:首先,需要计算给定数据集的所有样本的均值(μ)。
- 计算标准差:然后,计算数据集的标准差(σ),它衡量了数据点与均值的偏差程度。
- 应用公式:最后,使用Z标准化的公式将每个原始数据点转换为Z分数。
- 在python中,可以使用sklearn.preprocessing.StandardScaler类的fit_transform方法来实现z标准化。
例子:
import numpy as np
from sklearn.preprocessing import StandardScaler# 创建一个包含随机数值的二维数组,模拟特征数据集
# 假设有5个样本,每个样本有3个特征
np.random.seed(0) # 抛出一个随机种子,为了让后面每次运行时生成的随机数值,都与第一次相同
data = np.random.rand(5, 3) * 10 # 生成一个5x3的数组,每个元素的值在0到10之间
print("原始数据:")
print(data)# 使用StandardScaler进行标准化
scaler_Z = StandardScaler()
data_scaled = scaler_Z.fit_transform(data)
print("\nStandardScaler标准化后的数据:")
print(data_scaled)
"""
原始数据:
[[2.91800254 3.2360031 9.66065598][7.47746281 4.00855141 2.03950532][9.8433753 8.32004568 4.55501016][6.00990907 9.91191497 4.61528516][0.15924446 1.95696181 6.33065699]]StandardScaler标准化后的数据:
[[-0.69405259 -0.73160863 1.67789759][ 0.64479923 -0.48048456 -1.35200705][ 1.33953196 0.92100707 -0.35192975][ 0.21386292 1.43845911 -0.3279665 ][-1.50414152 -1.14737299 0.35400572]]
"""
三、注意事项
- 选择适当的方法:根据数据的特性和算法的需求选择合适的数据标准化方法。例如,如果数据集中存在异常值,Z标准化可能会受到影响,而最小-最大标准化则不受影响(但也可能因为异常值而改变缩放范围)。
- 考虑数据分布:数据标准化会改变数据的原始分布。在解释标准化后的数据时,需要考虑到这一点。
- 对测试集使用相同的参数:在训练集上进行数据标准化后,应使用相同的均值、标准差(对于Z标准化)或最小值、最大值(对于最小-最大标准化)来标准化测试集。
- 避免数据泄露:在实际应用中,需要确保在训练模型之前进行数据标准化,以避免在标准化过程中引入测试集的信息,从而导致数据泄露。
相关文章:

《机器学习》——数据标准化(0~1标准化,z标准化)
文章目录 数据标准化一、什么是标准化二、常用标准化0~1标准化z标准化 三、注意事项 数据标准化 一、什么是标准化 数据标准化是一种数据预处理技术,用于将数据按照一定的规则进行变换,使得不同特征或变量具有可比性和一致性。作用 消除量纲影响 在实际…...
如何监控和管理API接口的调用频率和并发量?
使用监控工具 APM(应用性能管理)工具 功能介绍:APM 工具如 New Relic、AppDynamics 等可以深入监控 API 的性能指标,包括调用频率、并发量、响应时间等。它们通过在应用程序中嵌入代理或使用无侵入式的监测方式,收集和…...

springboot+vue使用EasyCaptcha实现简单验证码
一、实现效果 springboot使用EasyCaptcha实现简单验证码,更多api和用法可以去github上查看EasyCaptcha: Java图形验证码,支持gif、中文、算术等类型,可用于Java Web、JavaSE等项目。 二、实现步骤 1、导入依赖 <!-- easy-captcha --&g…...

“善弈者”也需妙手,Oclean欧可林:差异化不是说说而已
作者 | 曾响铃 文 | 响铃说 俗话说,“牙痛不是病,痛起来要人命”。这话意思大家都知道,牙痛虽不是什么大病,可一旦发作却是极难忍受。 前几日,Oclean欧可林举办了一场AirPump A10氧气啵啵冲牙器新品品鉴会ÿ…...
Lianwei 安全周报|2025.1.2
以下是本周「Lianwei周报」,我们总结推荐了本周的政策/标准/指南最新动态、热点资讯和安全事件,保证大家不错过本周的每一个重点! 政策/标准/指南最新动态 01 国家数据局等五部门印发《关于促进企业数据资源开发利用的意见》 为充分释放企业…...

吐卡机开发——指令合集—未来之窗行业应用跨平台架构
序号指令10A 09 02 01 01 0D DE20A 09 02 02 01 FD DE30A 09 02 03 01 6D DF40A 09 02 04 01 5D DD50A 09 02 05 01 CD DC60A 09 02 06 01 3D DC70A 09 02 07 01 AD DD80A 09 02 08 01 5D D890A 09 02 09 01 CD D9100A 09 02 10 01 5D D2110A 09 02 11 01 CD D3120A 09 02 12 0…...
C# 设计模式(创建型模式):单例模式
C# 设计模式(创建型模式):单例模式 1. 引言 在软件开发中,设计模式是解决常见问题的经典方法。单例模式(Singleton Pattern)是创建型设计模式中的一种,旨在确保某个类只有一个实例,…...

使用WebSocket 获取实时数据
回车发送数据,模拟服务器发送数据 效果图: 源码: <template><div><h1>WebSocket 实时数据</h1><input type"text" v-model"ipt" keyup.enter"sendMessage(ipt)"><div v-if…...
阿里云服务器上安装配置Logtail日志收集客户端
在当今的云计算时代,有效的日志管理对于监控、故障排查和性能优化至关重要。作为阿里云用户,您可以利用阿里云强大的日志服务(SLS)来管理您的日志。而Logtail,作为SLS的核心组件之一,在日志收集和传输中扮演着关键角色。本文将为您详细介绍如何在阿里云服务器上安装和配置…...

Java实现下载excel模板,并实现自定义下拉框
GetMapping("excel/download")ApiOperation(value "模板下载")public void getUserRecordTemplate(HttpServletResponse response, HttpServletRequest request) throws IOException {OutputStream outputStream response.getOutputStream();InputStream…...

postgres docker安装
mkdir -p /root/postgresql/data docker pull postgres:14 docker run --privilegedtrue --name postgres -e POSTGRES_PASSWORD123456 -e ALLOW_IP_RANGE0.0.0.0/0 -p 5432:5432 -v /root/postgresql/data:/var/lib/postgresql/data -d postgres:14#地址:192.168.3…...
数据库原理与应用期末复习
目录 第 1 章 概述 第 2 章 关系模型的基本概念 第 3 章 SQL 语言 第 4 章 中级 SQL 第 5 章 高级 SQL 第 6 章 关系代数语言 第 7 章 数据库设计和 ER 模型 第 8 章 关系数据库设计 第 13 章 事务 第 14 章 并发控制与恢复 第 1 章 概述 Database-management system…...

数据库知识汇总2
一. 范式 定义:范式是符合某一种级别的关系模式的集合。 关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式; 一个低一级范式的关系模式,通过模式分解(schema decomposition)可以转换为若干个高一…...

CS·GO搬砖流程详细版
说简单点,就是Steam买了然后BUFF上卖,或许大家都知道这点,但就是一些操作和细节问题没那么明白。我相信,你看完这篇文章以后,至少会有新的认知。 好吧,废话少说,直接上实操! 首先准…...

《长寿养生报》是科普报刊吗?参与评选的科普作品需要注意什么?
随着各地医师职称评选标准改革的推广,目前不少省份已经将发表“科普作品”视作参与参与职称评选的工作成果。这一改革,也让《长寿养生报》这类报刊受到不少医护工作者的青睐。 《长寿养生报》是科普报刊吗?参与评选的科普作品需要注意什么&am…...

React native 原生环境搭建(最新版本RN环境搭建,不是expo)
前言 React Native 是 Facebook 推出的一款用于开发移动应用的框架,开发者可以用 JavaScript 和 React 等技术,一次编写代码,然后同时部署到 iOS 和 Android 平台上,大大节省了开发时间和人力成本,避免了为每个平台单…...

Unity Excel转Json编辑器工具
功能说明:根据 .xlsx 文件生成对应的 JSON 文件,并自动创建脚本 注意事项 Excel 读取依赖 本功能依赖 EPPlus 库,只能读取 .xlsx 文件。请确保将该脚本放置在 Assets 目录下的 Editor 文件夹中。同时,在 Editor 下再创建一个 Exc…...

XML结构快捷转JSON结构API集成指南
XML结构快捷转JSON结构API集成指南 引言 在当今的软件开发世界中,数据交换格式的选择对于系统的互操作性和效率至关重要。JSON(JavaScript Object Notation)和XML(eXtensible Markup Language)是两种广泛使用的数据表…...

数据挖掘——支持向量机分类器
数据挖掘——支持向量机分类器 支持向量机最小间隔面推导基于软间隔的C-SVM非线性SVM与核变换常用核函数 支持向量机 根据统计学习理论,学习机器的实际风险由经验风险值和置信范围值两部分组成。而基于经验风险最小化准则的学习方法只强调了训练样本的经验风险最小…...

ImageNet 2.0?自动驾驶数据集迎来自动标注新时代
引言: 3DGS因其渲染速度快和高质量的新视角合成而备受关注。一些研究人员尝试将3DGS应用于驾驶场景的重建。然而,这些方法通常依赖于多种数据类型,如深度图、3D框和移动物体的轨迹。此外,合成图像缺乏标注也限制了其在下游任务中的…...

手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...
稳定币的深度剖析与展望
一、引言 在当今数字化浪潮席卷全球的时代,加密货币作为一种新兴的金融现象,正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而,加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下,稳定…...