机器学习 —— 数据缩放

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

相关推荐
China_Yanhy2 小时前
动手学大模型第一篇学习总结
人工智能
空间机器人2 小时前
自动驾驶 ADAS 器件选型:算力只是门票,系统才是生死线
人工智能·机器学习·自动驾驶
C+++Python2 小时前
提示词、Agent、MCP、Skill 到底是什么?
人工智能
小松要进步2 小时前
机器学习1
人工智能·机器学习
Mr_Xuhhh2 小时前
Java泛型进阶:从基础到高级特性完全指南
开发语言·windows·python
泰恒3 小时前
openclaw近期怎么样了?
人工智能·深度学习·机器学习
KaneLogger3 小时前
从传统笔记到 LLM 驱动的结构化 Wiki
人工智能·程序员·架构
tinygone3 小时前
OpenClaw之Memory配置成本地模式,Ubuntu+CUDA+cuDNN+llama.cpp
人工智能·ubuntu·llama
正在走向自律3 小时前
第二章-AIGC入门-AIGC工具全解析:技术控的效率神器,DeepSeek国产大模型的骄傲(8/36)
人工智能·chatgpt·aigc·可灵·deepseek·即梦·阿里通义千问
轩轩分享AI3 小时前
DeepSeek、Kimi、笔灵谁最好用?5款网文作者亲测的AI写作神器横评
人工智能·ai·ai写作·小说写作·小说·小说干货