当前位置: 首页 > article >正文

【Feature Scaling】:加速梯度下降法的利器

目录

  • 特征缩放的目的
  • 常见的特征缩放方法
    • 1. 最小-最大缩放(Min-Max Scaling)
    • 2. 标准化(Standardization 或 Z-Score Normalization)
    • 3. 最大绝对值缩放(Max Abs Scaling)
  • Rescale的使用场景
  • 结论

在机器学习中,特征缩放(Feature Scaling)是数据预处理的重要步骤之一。其主要目的是使数据的特征值具有相似的范围,从而加速梯度下降法的收敛,提高模型的训练效率。本文将介绍特征缩放的概念、三种常见的方法及其使用场景。


特征缩放的目的

在机器学习中,数据集的特征往往具有不同的量纲和范围。例如,一个特征可能是收入(以美元为单位),范围是 10 , 000 10,000 10,000 100 , 000 100,000 100,000;另一个特征可能是年龄,范围是 0 0 0 100 100 100。这种情况下,不同特征对梯度下降的贡献可能相差甚远,导致梯度下降收敛变慢,甚至可能陷入局部最优。
在这里插入图片描述

在这里插入图片描述

特征缩放的核心目标是将不同特征的数值范围标准化,使其具有相似的尺度,从而:

  1. 加速梯度下降法的收敛
  2. 提高模型对不同特征的敏感度
  3. 避免某些特征对模型的影响被其他特征掩盖

常见的特征缩放方法

以下是三种常见的特征缩放方法及其公式:

1. 最小-最大缩放(Min-Max Scaling)

这种方法将特征值缩放到一个指定的范围(通常是 [ 0 , 1 ] [0, 1] [0,1]),公式如下:

x ′ = x − x min x max − x min x' = \frac{x - x_{\text{min}}}{x_{\text{max}} - x_{\text{min}}} x=xmaxxminxxmin

  • 优点:保留了原始数据的分布,适合需要保留稀疏矩阵特性的模型(如神经网络)。
  • 缺点:对异常值敏感。

2. 标准化(Standardization 或 Z-Score Normalization)

标准化将特征值转化为均值为 0 0 0,标准差为 1 1 1的正态分布。公式如下:

x ′ = x − μ σ x' = \frac{x - \mu}{\sigma} x=σxμ

其中, μ \mu μ是特征的均值, σ \sigma σ是特征的标准差。

  • 优点:对异常值影响较小,适合需要满足正态分布假设的模型(如线性回归、支持向量机)。
  • 缺点:可能无法保证数据在特定范围内。

3. 最大绝对值缩放(Max Abs Scaling)

这种方法将每个特征值除以该特征的最大绝对值,公式如下:

x ′ = x ∣ x max ∣ x' = \frac{x}{\lvert x_{\text{max}} \rvert} x=xmaxx

  • 优点:非常适合稀疏数据,保持数据的稀疏性。
  • 缺点:对异常值同样敏感。

Rescale的使用场景

Rescale通常是指最小-最大缩放方法,在以下场景中尤为适用:

  1. 特征值范围差异较大,且模型对范围大小敏感(如神经网络)。
  2. 数据中没有明显的异常值
  3. 需要数据在固定范围内进行归一化(如 [ 0 , 1 ] [0, 1] [0,1] [ − 1 , 1 ] [-1, 1] [1,1])以满足某些算法的要求

在实践中,Python的scikit-learn库提供了方便的工具实现Rescale,例如:

from sklearn.preprocessing import MinMaxScaler

# 初始化MinMaxScaler
scaler = MinMaxScaler(feature_range=(0, 1))

# 数据缩放
scaled_data = scaler.fit_transform(data)

结论

特征缩放是数据预处理中不可忽视的一步,其核心目的是加速梯度下降法的收敛,同时提高模型的训练效率。根据数据的特性和模型的需求,可以选择最小-最大缩放、标准化或最大绝对值缩放等方法。在实际应用中,结合对数据分布的理解选择合适的缩放方式,能让你的机器学习模型更高效、更准确!


http://www.kler.cn/a/517796.html

相关文章:

  • 狗狗能吃萝卜吗?
  • 机位:解锁摄影视角的多维度密码
  • 数据结构——实验七·排序
  • [特殊字符]【计算机视觉】r=2 采样滤波器全解析 ✨
  • 【Git版本控制器--3】Git的远程操作
  • 系统架构设计师教材:信息系统及信息安全
  • NoSQL使用详解
  • 春节假期旅游热潮下,景区医疗安全如何全面升级?
  • 第R5周:天气预测
  • 竞赛算法总结
  • Flutter 给安卓签名时 使用 Android Studio 找不到 Generate Signed Bundle/APK 菜单问题
  • 基于 WPF 平台使用纯 C# 制作流体动画
  • 【软件测试】《软件测试计划》目录及内容概述
  • react中hooks之useDebugValue用法总结
  • 基于Springboot + vue实现的在线装修管理系统
  • FlinkSql使用中rank/dense_rank函数报错空指针
  • HashSet经典面试题
  • Git知识分享
  • 5. 马科维茨资产组合模型+政策意图AI金融智能体(Qwen-Max)增强方案(理论+Python实战)
  • 企业微信第三方应用开发006_开发配置_配置网络穿透_配置数据回调_指令回调_连接后台---企业微信开发009
  • ffmpeg的AVOption用法
  • YOLOv5模型版本详解:n/s/m/l的区别与选型指南
  • GEE | ERA5不同土壤层水分和温度变化
  • 【gopher的java学习笔记】一文讲懂controller,service,mapper,entity是什么
  • ChatGPT大模型极简应用开发-CH5-使用 LangChain 框架和插件增强 LLM 的功能
  • pip国内源汇总