尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Z-Score 标准化 (Standardization),Min-Max 归一化 (Normalization / Rescaling)

Z-Score 标准化 (Standardization),Min-Max 归一化 (Normalization / Rescaling)
📅 发布时间:2026/6/29 16:33:36

在构建 Lasso 回归模型时,特征标准化是至关重要的一步,因为 Lasso 的 L1 正则化惩罚项对特征的尺度非常敏感。如果特征量纲不同(例如“年龄”范围是 0-100,“收入”范围是 0-100,000),未标准化的数据会导致模型对大数值特征施加过大的惩罚,从而影响特征选择的准确性。

常用的两种特征标准化/缩放方法分别是 ‌Z-Score 标准化 (Standardization)‌ 和 ‌Min-Max 归一化 (Normalization)‌。

1. Z-Score 标准化 (Standardization)

‌原理‌:
将数据转换为均值为 0、标准差为 1 的分布。它保留了原始数据的分布形状,但消除了量纲影响。
公式:x′=x−μσx′=σx−μ​
其中 μμ 是均值,σσ 是标准差。

‌适用场景‌:

  • ‌Lasso/Ridge 回归的首选‌。大多数机器学习算法(特别是基于距离或正则化的算法)假设数据符合正态分布或至少具有零均值和单位方差。
  • 数据中存在异常值时,虽然标准化受异常值影响,但相比归一化,它不会将数据强制压缩到固定区间,因此在某些情况下更稳健(尽管通常建议先处理异常值)。

‌代码实现‌:

‌Python (sklearn):‌

python

from sklearn.preprocessing import StandardScaler
import numpy as np

# 假设 X 是你的特征数据矩阵
X = np.array([[10, 200], [20, 300], [30, 400]])

# 创建标准化器
scaler = StandardScaler()

# 拟合并转换训练数据
X_scaled = scaler.fit_transform(X)

# 转换测试数据(只 transform,不 fit)
# X_test_scaled = scaler.transform(X_test)

print("标准化后的数据:\n", X_scaled)
print("均值:", X_scaled.mean(axis=0)) # 接近 0
print("标准差:", X_scaled.std(axis=0)) # 接近 1

‌R 语言:‌

# 假设 df 是你的数据框,排除目标变量列
# scale() 函数默认进行 Z-Score 标准化
data_scaled <- scale(df[, -which(names(df) == "target")])

# 查看结果
head(data_scaled)


2. Min-Max 归一化 (Normalization / Rescaling)

‌原理‌:
将数据线性映射到 [0, 1] 区间(也可以指定其他区间,如 [-1, 1])。
公式:x′=x−xminxmax−xminx′=xmax​−xmin​x−xmin​​

‌适用场景‌:

  • 当算法要求输入数据必须在特定 bounded 区间时(如神经网络的一些激活函数、图像处理像素值)。
  • 数据分布不符合正态分布,且你希望保留原始数据的相对比例关系。
  • ‌注意‌:对于 Lasso 回归,虽然可以使用归一化,但 ‌Standardization (Z-Score)‌ 通常更推荐,因为 Lasso 的正则化路径在标准化数据上表现更稳定。如果数据中有极端异常值,Min-Max 会将大部分数据压缩到非常小的区间,导致区分度降低。

‌代码实现‌:

‌Python (sklearn):‌

from sklearn.preprocessing import MinMaxScaler
import numpy as np

X = np.array([[10, 200], [20, 300], [30, 400]])

# 创建归一化器
min_max_scaler = MinMaxScaler(feature_range=(0, 1)) # 默认就是 0-1

# 拟合并转换
X_normalized = min_max_scaler.fit_transform(X)

print("归一化后的数据:\n", X_normalized)
print("最小值:", X_normalized.min(axis=0)) # 0
print("最大值:", X_normalized.max(axis=0)) # 1

‌R 语言:‌

# R 基础包中没有直接的 MinMax 函数,可以手动编写或使用 caret/scales 包
# 手动实现 Min-Max 归一化
min_max_norm <- function(x) {
return ((x - min(x)) / (max(x) - min(x)))
}

# 对数据框中的每一列应用
df_numeric <- df[, sapply(df, is.numeric)] # 仅选择数值列
df_normalized <- as.data.frame(lapply(df_numeric, min_max_norm))


总结与建议

表格

特性Z-Score 标准化 (StandardScaler)Min-Max 归一化 (MinMaxScaler)
‌输出范围‌无固定范围,均值=0,标准差=1固定在 [0, 1] (或指定范围)
‌对异常值敏感度‌中等 (均值和标准差受异常值影响)‌高‌ (最大值/最小值直接决定缩放比例)
‌Lasso 回归推荐度‌‌⭐⭐⭐⭐⭐ (强烈推荐)‌⭐⭐⭐ (可用,但不如标准化普遍)
‌主要用途‌线性回归、SVM、KNN、PCA、聚类神经网络、图像处理、需要边界值的算法

‌针对 Lasso 模型的最佳实践:‌

  1. ‌优先使用StandardScaler(Z-Score)‌。
  2. 务必在‌训练集‌上fit,然后同时转换训练集和测试集,以防止数据泄露。
  3. 如果使用 Python 的sklearn,推荐使用Pipeline将标准化和 Lasso 模型封装在一起,确保交叉验证时每一步都正确执行。

‌Python Pipeline 示例 (最佳实践):‌

from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LassoCV
from sklearn.model_selection import train_test_split

# 假设 X, y 已准备好
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建管道:先标准化,再运行 Lasso
pipeline = Pipeline([
('scaler', StandardScaler()),
('lasso', LassoCV(cv=5)) # LassoCV 自动通过交叉验证选择最佳 alpha
])

# 训练模型 (管道会自动对训练数据进行 fit_transform,对测试数据 transform)
pipeline.fit(X_train, y_train)

# 预测
y_pred = pipeline.predict(X_test)

# 查看最佳 alpha 和系数
print("Best Alpha:", pipeline.named_steps['lasso'].alpha_)
print("Coefficients:", pipeline.named_steps['lasso'].coef_)

相关新闻

  • 从1Gb/s带宽与10ms时延出发,探究TCP窗口65535字节下的性能极限
  • 工业物联网(IIoT)数据采集的5个坑,我都替你踩过了
  • 05 通信协议设计时的注意事项

最新新闻

  • 终极游戏存档备份指南:使用Ludusavi保护你的游戏进度
  • WorkBuddy如何链接GitHub自动操作仓库
  • 5分钟搞定AI视频剪辑:FunClip智能工具让创作零门槛
  • 经典算法实例:有效的回旋镖
  • 前列腺癌医学影像AI诊断:Kaggle冠军方案解析
  • 2026企业级GEO优化排名监测系统排行,多维度对比解析选型实战指南

日新闻

  • ENVI5.3.1实战:基于Landsat 8影像的区域无缝镶嵌与精准裁剪
  • 3步完成HS2-HF Patch安装:新手快速打造完美HoneySelect2体验
  • 微信好友检测终极指南:3分钟发现谁已悄悄删除你

周新闻

  • Windows字体自定义终极方案:No!! MeiryoUI完全指南
  • Deepin Boot Maker:告别命令行,3分钟制作Linux启动盘的智能解决方案
  • Plain Craft Launcher 2:重新定义你的Minecraft游戏体验

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号