机器学习 —— 数据缩放

摘要:数据缩放是机器学习中重要的预处理技术,主要包括归一化和标准化两种方法。归一化将特征值缩放到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 类实现标准化的示例代码:

python 复制代码
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() 方法同时完成了数据拟合与转换操作。

输出结果

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

缩放前的数据:

花萼长度(厘米) 花萼宽度(厘米) 花瓣长度(厘米) 花瓣宽度(厘米)
0 5.1 3.5 1.4 0.2
1 4.9 3.0 1.4 0.2
2 4.7 3.2 1.3 0.2
3 4.6 3.1 1.5 0.2
4 5.0 3.6 1.4 0.2

缩放后的数据:

花萼长度(厘米) 花萼宽度(厘米) 花瓣长度(厘米) 花瓣宽度(厘米)
0 -0.900681 1.019004 -1.340227 -1.315444
1 -1.143017 -0.131979 -1.340227 -1.315444
2 -1.385353 0.328414 -1.397064 -1.315444
3 -1.506521 0.098217 -1.283389 -1.315444
4 -1.021849 1.249201 -1.340227 -1.315444

相关推荐
ADAI_Bowen1 分钟前
渲境AI实测:当AI尝试扛起建筑效果图的交付压力
大数据·人工智能
yi0112 分钟前
DAY27: LeetCode 110. 平衡二叉树 | 在递归中判断是否平衡
人工智能·笔记·python·算法·leetcode·二叉树·递归
Sammyyyyy3 分钟前
jev-ultrafast 实战:浏览器操作代理加本地 AI 网关,把云控制台配置做成自动化流水线
运维·人工智能·自动化·ai编程·servbay
狂师3 分钟前
爆火!新一代e2e AI测试框架,单日狂揽1500 star
前端·人工智能·测试
米小虾4 分钟前
随机基线都打不过:为什么一整代视觉 Token 压缩方法在混合线性注意力上集体失效
人工智能
米小虾4 分钟前
一条 rollout 的两种死法:RLVR 的学习信号漏在哪,怎么补
人工智能
yychen_java13 分钟前
第十二篇:完整项目实战——构建可验证的能源智能运维 Agent 中枢
运维·人工智能·能源
loulanyue_16 分钟前
蚂蚁集团AI Native研发实践:从面向人类到面向Agent的下一代技术架构演进——读平台技术事业群总架构师黄挺2026云栖专场演讲
人工智能·大模型·软件架构·蚂蚁集团
HAHAXX818 分钟前
影刀AI点数是怎么消耗的?拆解消耗规则 + 成本优化实战
人工智能·rpa
smartpi_ai19 分钟前
离线语音识别模块选型指南:CI-03T、SU-32T、SU-03T 等模块在不同场景下的对比与选择
人工智能·ci/cd·语音识别