news 2026/5/1 7:09:07

机器学习 —— 数据缩放

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
机器学习 —— 数据缩放

摘要:数据缩放是机器学习中重要的预处理技术,主要包括归一化和标准化两种方法。归一化将特征值缩放到0-1范围,标准化则将特征调整为均值为0、标准差1的分布。Python中可通过sklearn的StandardScaler实现标准化处理,示例展示了鸢尾花数据集缩放前后的对比,使用fit_transform()方法完成数据拟合和转换。数据缩放能消除特征量纲差异,提升模型性能。

目录

机器学习 —— 数据缩放

示例

输出结果

缩放前的数据:

缩放后的数据:


机器学习 —— 数据缩放

数据缩放(Data Scaling)是机器学习中的一种数据预处理技术,用于对数据中特征的取值范围或分布进行归一化(Normalization)或标准化(Standardization)处理。数据缩放至关重要,因为数据中的不同特征可能具有不同的量纲,而部分算法在处理此类数据时性能会受影响。通过数据缩放,可使每个特征的量纲和取值范围保持一致,从而提升机器学习模型的性能。

数据缩放主要包含两种常用技术:

  1. 归一化(Normalization):将特征值缩放至 0 到 1 之间。具体实现方式为:用该特征的每个取值减去该特征的最小值,再除以该特征的取值范围(即最大值与最小值的差值)。
  2. 标准化(Standardization):将特征值缩放至均值为 0、标准差为 1 的分布状态。具体实现方式为:用该特征的每个取值减去该特征的均值,再除以该特征的标准差。

示例

在 Python 中,可通过sklearn模块实现数据缩放。sklearn.preprocessing子模块提供了用于数据缩放的相关类。以下是使用StandardScaler类实现标准化的示例代码:

from sklearn.preprocessing import StandardScaler from sklearn.datasets import load_iris import pandas as pd # 加载鸢尾花数据集 data = load_iris() X = data.data # 特征数据 y = data.target # 目标变量 # 将数据集转换为 DataFrame 格式 df = pd.DataFrame(X, columns=data.feature_names) print("缩放前的数据:") print(df.head()) # 使用 StandardScaler 对数据进行标准化 scaler = StandardScaler() X_scaled = scaler.fit_transform(X) # 拟合数据并完成缩放转换 # 将缩放后的特征数据转换为新的 DataFrame df_scaled = pd.DataFrame(X_scaled, columns=data.feature_names) print("缩放后的数据:") print(df_scaled.head())

在本示例中,首先加载鸢尾花(Iris)数据集并将其转换为 DataFrame 格式,随后使用StandardScaler类对特征数据进行标准化处理,生成缩放后的新 DataFrame。最后通过打印两个 DataFrame,对比数据缩放前后的差异。需注意的是,此处通过缩放器对象的fit_transform()方法同时完成了数据拟合与转换操作。

输出结果

运行上述代码后,将得到如下输出:

缩放前的数据:

花萼长度(厘米)花萼宽度(厘米)花瓣长度(厘米)花瓣宽度(厘米)
05.13.51.40.2
14.93.01.40.2
24.73.21.30.2
34.63.11.50.2
45.03.61.40.2

缩放后的数据:

花萼长度(厘米)花萼宽度(厘米)花瓣长度(厘米)花瓣宽度(厘米)
0-0.9006811.019004-1.340227-1.315444
1-1.143017-0.131979-1.340227-1.315444
2-1.3853530.328414-1.397064-1.315444
3-1.5065210.098217-1.283389-1.315444
4-1.0218491.249201-1.340227-1.315444

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/8 18:06:43

AOP动态代理与静态织入区别详解,哪种方式更适合你的项目?

在软件开发中,AOP(面向切面编程)是解决横切关注点的重要技术。其中动态代理和静态织入是实现AOP的两种主要方式。作为长期应用这两种技术的架构师,我认为理解它们的区别和适用场景对设计健壮的系统至关重要。 AOP动态代理和静态织…

作者头像 李华
网站建设 2026/4/28 17:50:23

基于Java的市政工程勘察设计智慧管理系统的设计与实现全方位解析:附毕设论文+源代码

1. 为什么这个毕设项目值得你 pick ? 市政工程勘察设计智慧管理系统旨在提升传统管理模式的效率与准确性。相比常规系统,本项目聚焦于具体功能模块构建,如会员管理、字典管理和各类项目及任务管理等,从而实现数据录入快速准确且易于审核的功…

作者头像 李华
网站建设 2026/4/21 20:46:47

2026年国内低代码与AI应用构建工具选型指南

到了2026年,低代码工具早已不是简单的“拖拉拽”弄个表单那么简单了。随着AI Native(AI原生)趋势的深化,我们构建应用的方式发生了本质变化:以前是人去适应工具的操作逻辑,现在是工具通过AI来理解人的意图。…

作者头像 李华
网站建设 2026/4/29 2:34:08

什么是VDSL

文章目录VDSL和ADSL的区别VDSL工作系统VDSL速率VDSL应用场景有哪些VDSL技术演进VDSL(超高速数字用户线路)是一种基于传统电话铜线的高速宽带接入技术,属于xDSL(数字用户线路)家族的重要成员。VDSL旨在提供比早期ADSL&a…

作者头像 李华
网站建设 2026/4/24 20:14:27

35 岁后被淘汰?实施和运维的 “青春饭” 传言,该戳破了!

35 岁后被淘汰?实施和运维的 “青春饭” 传言,该戳破了 在IT行业,“35岁危机”像一道悬在头顶的达摩克利斯之剑,让不少从业者焦虑:自己的岗位到底是不是“吃青春饭”?其中,实施工程师和运维工程…

作者头像 李华