news 2026/4/16 18:25:40

机器学习 —— 数据缩放

作者头像

张小明

前端开发工程师

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/16 2:52:52

Java继承入门:OOP继承的好处与实现方法

面向对象编程中的继承是一种代码复用和层次化建模的核心机制。通过继承,子类可以自动获得父类的属性和方法,同时又能添加或修改自己的特性。在实际开发中,合理使用继承能大幅减少重复代码,构建出清晰且易于扩展的软件结构。 面向…

作者头像 李华
网站建设 2026/4/16 12:52:54

Flutter艺术探索-Flutter复杂动画:AnimatedBuilder与Staggered动画

Flutter复杂动画:深入理解AnimatedBuilder与Staggered动画 引言:为什么需要更复杂的动画? 如今,流畅自然的动画效果早已不是应用的“加分项”,而是塑造优秀用户体验的关键。Flutter 在动画实现上有着天然的优势&…

作者头像 李华
网站建设 2026/4/16 10:56:59

【Python Web】一文搞懂Flask框架:从入门到实战的完整指南

【Python Web】一文搞懂 Flask 框架:从入门到实战的完整指南(2025–2026 现代实践版) Flask 是目前 Python 生态中最轻量、最灵活的 Web 微框架(micro-framework)。它不像 Django 那样“大而全”,而是“核…

作者头像 李华
网站建设 2026/4/15 18:19:00

通过python API来调用扣子coze的工作流

通过 Python 调用**扣子(Coze)**的工作流(Workflow),目前最推荐的方式是使用官方提供的 cozepy SDK(Python SDK)。这是字节跳动官方维护的包,支持完整的 Coze Open API,包…

作者头像 李华
网站建设 2026/4/16 18:13:39

基于Gin与GORM的若依后台管理系统设计与实现

基于Gin与GORM的若依后台管理系统设计与实现 基于Go语言的若依后台管理系统:毕业设计与企业级开发的完美结合 在当今快速发展的信息化时代,企业对于高效、稳定的后台管理系统需求日益增长。作为一名计算机科学或软件工程专业的学生,如何选择…

作者头像 李华