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

机器学习实战:归一化与标准化的选择指南

在机器学习实战中——是否需要归一化(Normalization)或标准化(Standardization),取决于所使用的模型类型。


✅ LightGBM / XGBoost 是否需要归一化或标准化?

不需要。

🔧 原因:

LightGBM 和 XGBoost 都是 基于决策树的模型,它们对特征的数值分布不敏感:

  • 决策树只关心特征的相对大小和分裂点,而不是绝对数值或分布形态。
  • 不存在权重乘以特征的问题,所以不需要归一化或标准化

❓归一化和标准化是什么,有什么区别?

方法名称作用公式使用场景
✅ 归一化Min-Max Normalization把数据压缩到 [0,1] 范围x' = (x - min) / (max - min)深度学习(如Keras) 或欧几里得距离计算
✅ 标准化Z-score Standardization转换为均值为0、方差为1的数据x' = (x - mean) / std线性回归、SVM、KNN、神经网络

🔍 举个例子:

假设温度范围是 [60°C, 120°C],振动范围是 [0.1, 10.0] mm/s
如果你用神经网络,振动的数值对损失函数的影响将远大于温度 —— 所以需要归一化/标准化。

而 LightGBM/XGBoost 会自动找到“哪个值做分裂点最好”,不会因为振动数值更大就更“重视”它。


在这里插入图片描述

✅ 总结

问题回答
是否需要对 LightGBM / XGBoost 做归一化或标准化?❌ 不需要
是否建议你预处理?✅ 建议做缺失值处理,但不需要缩放
哪些模型必须做归一化或标准化?神经网络、KNN、SVM、线性模型等

如果未来使用 类似于Keras 的神经网络模型(比如你前面提到的 CNN、LSTM),那就必须做归一化或标准化


在实际应用中,归一化(Normalization)和标准化(Standardization)通常只选一个,其实我们不需要两个都做,选择哪一个取决于所用模型数据分布

✅ 选择哪一个的判断依据:

场景推荐操作原因
神经网络(Keras, TensorFlow, PyTorch)🔹归一化 或 🔹标准化都可,但选其一即可网络更稳定、收敛更快
数据近似服从正态分布✅ 标准化把数据压成均值为0、标准差为1
数据在固定范围内分布(如0-255图像)✅ 归一化保持原分布特性,缩放到[0,1]或[-1,1]
KNN、SVM、线性模型✅ 标准化更常见对欧几里得距离和梯度敏感
决策树类模型(XGBoost、LightGBM)❌ 都不需要树模型对数据缩放不敏感

🔍 区别总结

操作名称结果应用常见于
x' = (x - min) / (max - min)归一化数据压缩到 [0, 1]图像像素、深度学习输入
x' = (x - μ) / σ标准化数据均值为0,标准差为1KNN/SVM/回归/神经网络

🧪 举例代码:

✅ 1. 标准化(Z-score):

from sklearn.preprocessing import StandardScalerscaler = StandardScaler()
X_scaled = scaler.fit_transform(X)  # 用于训练集 & 测试集

✅ 2. 归一化(Min-Max):

from sklearn.preprocessing import MinMaxScalerscaler = MinMaxScaler()
X_scaled = scaler.fit_transform(X)

⚠️ 注意:训练集用 fit_transform,测试集用 transform,不能重新 fit


✅ 最终结论:

问题回答
是否需要同时做归一化和标准化?❌ 不需要,只选其一
选哪个?神经网络用归一化或标准化都可以,推荐标准化更通用
树模型要不要做?❌ 都不做,直接用原始数据即可
http://www.xdnf.cn/news/5674.html

相关文章:

  • Spring Boot 参数验证
  • 【TTS学习笔记】:语音合成领域基本术语
  • 关系型数据库和非关系型数据库
  • Redis数据类型
  • 结合 GWAS 和 TWAS 鉴定玉米籽粒中生育色醇水平的候选致病基因
  • Java Spring Boot项目目录规范示例
  • 【Python训练营打卡】day23 @浙大疏锦行
  • 基于Backtrader库的实时回测与模拟交易策略实战
  • day06_java中的流程控制语句
  • Milvus 2.4 使用详解:从零构建向量数据库并实现搜索功能(Python 实战)
  • 力扣-138.随机链表的复制
  • js fetch流式请求 AI动态生成文本,实现逐字生成渲染效果
  • 个人博客系统测试报告
  • 常用激活函数总结
  • websocketpp 安装及使用
  • 基于OpenCV的人脸识别:Haar级联分类器
  • SATA—Link层状态机
  • Gmssl库的aes算法效率问题
  • 家具制造行业的现状 质检LIMS如何赋能家具制造企业质检升级
  • 见多识广7:KAIST(韩国高等科学技术院)——关注AI加速器方向
  • 复盘与导出工具最新版V23.0版本更新--新增韭菜异动轮动功能
  • 基于 Python 的后端开发学习路线
  • 【AI】mcp server是什么玩意儿
  • 【Linux网络】 HTTP cookie与session
  • DeepPrep:深度学习提升神经影像预处理
  • LeetCode算法题:电话号码的字母组合
  • Bodhi linux 系统详解
  • 分析红黑树工程实用的特点
  • 智能手表测试计划文档(软/硬件)
  • 读取.ini后缀类型的马达配置文件并进行赋值