数据预处理之数据标准化归一化文章目录数据预处理之数据标准化归一化前言机器学习ML数据预处理数据标准化1Min-Max标准化2Z-Score标准化3小数定标标准化4均值归一化法5向量归一化6指数转换总结参考前言这是一个新的专题欢迎来到全新的篇章这里我们将会学到机器学习的一些小知识。在这里我们可以学到1、Python第三方库numpy、pandas以及sklearn库的使用2、机器学习的基本概念和流程3、机器学习的一些基本算法机器学习ML机器学习Machine Learning是从数据中自动分析获得模型并利用模型对未知数据进行预测。机器学习工作流程可总结如下1.获取数据2.数据基本处理3.特征工程4.机器学习(模型训练)5.模型评估6.结果达到要求形成知识没有达到要求重新上面步骤数据预处理数据预处理Data Preprocessing是指在使用数据进行建模或分析前对其进行的处理。真实环境中产生的数据往往都不是完整、不一致的“脏数据”无法直接用来建模或进行数据分析。为了提高数据挖掘质量需要对数据进行一定的处理。常见的数据预处理包括标准化、归一化、离散化、抽样、降维、去噪等。今天我们主要介绍数据的标准化与归一化。数据标准化数据标准化Normalization是指将原始数据按一定规则进行缩放使其落在特定的数值范围内通常为 [0, 1] 或 [-1, 1]以便于不同量纲或分布差异较大的特征在后续分析中具有可比性。该过程常用于机器学习、数据分析和统计建模中以消除量纲影响提升算法收敛速度与模型性能。数据归一化Scaling是指是将不同量纲或取值范围的数据转换到统一的尺度上通常映射到 [0, 1] 或 [-1, 1] 区间。其主要目的是消除特征之间的量纲差异提升模型训练效率与收敛速度尤其在基于距离的算法如KNN、SVM和神经网络中尤为重要。为什么要进行数据标准化与归一化呢去除数据的单位限制将其转化为无量纲的纯数值便于不同量级、不同单位或不同范围的数据转化为统一的标准数值以便进行比较分析和加权。我们以著名的海伦约会对象数据为例说明一下如下为部分数据数据集中共有三个特征分别是每年飞行公里数、玩videoGame的时间占比、每周消耗雪糕公升数第四列表示的是海伦对该样本的喜爱程度。公里数的数值远远大于后两者特征的值如果直接计算的话模型的准确程度肯定大打折扣。此外数据标准化的好处有加速模型的收敛速度提高模型的精度。常见的数据标准化方法有以下6种。1Min-Max标准化Min-Max标准化是指对原始数据进行线性变换将值映射到[0,1]之间数据分布不变。Min-Max标准化的计算公式为x ′ x − m i n ( x ) m a x ( x ) − m i n ( x ) x ′ \frac{x−min(x)}{max(x)−min(x)}x′max(x)−min(x)x−min(x)公式中x为原始数据中的一个数据max(x)表示原始数据中的最大值min(x)表示原始数据中的最大值。数据读入代码如下示例# 借助Python的三方库pandas实现对数据集的读取与处理numpy实现科学计算# 代码主要通过jupyter notebook编写完成复制时注意输出格式importnumpyasnpimportpandasaspd# 读取数据dfpd.read_csv(datingTestSet.csv,headerNone,names[里程数,时间百分比,公升数,标签])labelsnp.array(df[标签])df.drop(标签,axis1,inplaceTrue)# 删除标签值df.head(10)# 展示数据前十行示例输出Min-Max标准化代码如下示例defMin_Max(data): Min_Max归一化 min_valnp.min(data)max_valnp.max(data)# 极差rangesmax_val-min_val norm_data(data-min_val)/rangesreturnnorm_data norm_dataMin_Max(df)norm_data.head(10)示例输出2Z-Score标准化Z-Score标准化是指基于原始数据的均值和标准差来进行数据的标准化公式如下x ′ x − μ σ x ′ \frac{x−μ}{σ}x′σx−μ公式中x为原始数据中的一个数据μ表示原始数据的均值σ表示原始数据的标准差。代码如下示例defZ_Score(data):meannp.mean(data)# 均值std_devnp.std(data)# 标准差norm_data(data-mean)/std_devreturnnorm_data norm_dataZ_Score(df)norm_data.head(10)示例输出3小数定标标准化小数定标标准化是通过移动数据的小数位数将数据映射到[-1,1]区间上移动的小数位数取决于数据绝对值的最大值。例如一组数据为[-10,12,-234,78,-987,789],其中绝对值最大为-987即改组数据所有数值小数点移动三位即可得到标准化后的数据。小数定标标准化公式如下x ′ x 10 j x ′ \frac{x}{10^j}x′10jx式中j表示小数点移动位数。代码如下示例defDecimalScaler(data):exponentnp.ceil(np.log10(data.abs().max()))norm_datadata/10**exponentreturnnorm_data norm_dataDecimalScaler(df)norm_data.head(10)示例输出4均值归一化法均值归一化是指通过原始数据中的均值、最大值和最小值来进行数据的标准化。其计算公式如下x ′ x − μ m a x ( x ) − m i n ( x ) x ′ \frac{x-μ}{max(x)−min(x)}x′max(x)−min(x)x−μ公式中x为原始数据中的一个数据μ表示原始数据的均值。代码如下示例defMeanScaler(data): 均值归一化 min_valnp.min(data)max_valnp.max(data)meannp.mean(data)norm_data(data-mean)/(max_val-min_val)returnnorm_data norm_dataMeanScaler(df)norm_data.head(10)示例输出5向量归一化向量归一化是指通过原始数据中的每个值除以该特征所有数据之和来进行数据的标准化。其计算公式如下x ′ x ∑ i 1 n x i x ′ \frac{x}{\sum_{i1}^n x_i}x′∑i1nxix公式中分母表示的是原始数据的该特征所有数据之和。代码如下示例defVectorScaler(data): 向量归一化 norm_datadata/np.sum(data)returnnorm_data norm_dataVectorScaler(df)norm_data.head(10)示例输出6指数转换指数转换是指通过对原始数据的值进行相应的指数函数进行数据的标准化。指数转换常见的函数方法有lg函数、Softmax函数和Sigmoid函数。此处我们只介绍lg函数的标准化处理因为当数据的值过大时Softmax函数和Sigmoid函数标准化并不完全适用(虽然不详细介绍但依旧提供手写代码实现点击此处即可前往全部代码链接)熟悉神经网络或深度学习的朋友知道上述两种函数常用作激活函数。lg函数对应的标准化计算公式如下x ′ l g ( x ) l g ( m a x ( x ) ) x ′ \frac{lg(x)}{lg(max(x))}x′lg(max(x))lg(x)代码如下示例deflg_scaler(data): lg函数标准化 max_valnp.max(data)norm_datanp.log10(data)/np.log10(max_val)returnnorm_data norm_datalg_scaler(df)norm_data.head(10)示例输出总结本篇博客我们简单介绍了机器学习及其基本流程以及数据预处理的基本概念主要讲解了数据标准化的目的与意义详细讲述了常用的6种数据标准化的方法并通过手写Python代码对海伦约会对象数据集进行了展示。当然在Python的机器学习三方库sklearn库中对数据标准化归一化做了完美的封装感兴趣的小伙伴可以在评论区里积极交流或是私信与我交流。参考完整代码连接
企业数字化 ERP 产品动态
相关推荐
【Z-Library网站进不去——(安装插件解决)】 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 3:18:13
Linux系统log日志简单清理 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 3:18:13
【VSCode 插件商城无法搜索到插件的解决方法】 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 3:18:13
商业航天与卫星通信技术解析及应用场景 1. 商业航天与卫星通信行业概述2000年初,我参与第一个卫星地面站建设项目时,商业航天还只是各国航天局的专属领域。如今SpaceX的猎鹰火箭已实现常态化回收,OneWeb和星链正在近地轨道展开激烈竞争——这个曾经由国家主导的行业,正在… · 2026/11/5 7:14:37
1756SIL2认证解析:工业PLC功能安全的工程落地指南 简介:本资源为罗克韦尔自动化(Rockwell Automation)ControlLogix系列PLC于2021年获得的IEC 61508:2010 SIL2功能安全认证官方文件,面向工业自动化工程师、安全系统设计人员及PLC应用开发者,用于验证设备在安全关键场景… · 2026/11/5 7:14:37
大数据运维工程师实战:Hadoop集群规划与网络问题排查 1. 大数据运维工程师的核心职责解析在大数据时代,分布式集群已成为企业数据处理的核心基础设施。作为一名大数据运维工程师,我们的首要任务是确保这些复杂系统的稳定运行。不同于传统运维,大数据环境下的运维工作面临着独特的挑战:… · 2026/11/5 7:14:37
NSGA-III MATLAB中文注释实现:2目标多目标优化实战指南 简介:本资源是面向多目标优化初学者与进阶研究者的NSGA-III算法Matlab实现包,聚焦2目标经典测试问题(如MOP2),特别适合算法原理理解、代码调试与教学演示场景。压缩包共16个文件,含14个核心m脚本࿰… · 2026/11/5 7:14:37
夸克网盘1TB免费扩容全攻略与避坑指南 1. 夸克网盘1TB扩容需求解析作为一名长期使用各类网盘存储工作资料的互联网从业者,我深刻理解存储空间不足的痛点。夸克网盘作为阿里旗下的云存储产品,其初始10GB的免费空间对于现代用户而言确实捉襟见肘——一部高清电影就可能占去5-8GB,更不… · 2026/11/5 7:14:37
STM32F407嵌入式示波器:2MHz采样+硬件触发+TFT实时显示 简介:本资源是一套基于STM32F407微控制器实现的嵌入式数字示波器完整开发套件,面向嵌入式初学者、电子类专业学生及硬件爱好者,解决高频信号采集、实时数据处理与本地波形显示等典型嵌入式测量需求。项目深度整合ADC高速采样、FIFO缓存管理、… · 2026/11/5 7:13:37
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38
多智能体协作系统架构设计与实践优化 1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中… · 2026/11/5 0:00:39
大模型系统性入门实战指南:从原理到部署微调的全链路路线 提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#… · 2026/11/5 0:00:39
鸿蒙文件系统沙箱机制解析与开发实践 1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的… · 2026/11/5 0:00:39
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38