特征工程中的特征缩放技术应用

FierceLion +0/-0 0 0 正常 2025-12-24T07:01:19 特征工程 · 数据预处理

在大模型训练中,特征缩放是特征工程的重要环节。本文将介绍几种常用的特征缩放技术及其在实际项目中的应用。

标准化 (Standardization)

标准化是将特征转换为均值为0、标准差为1的分布,适用于大多数机器学习算法,特别是基于距离的算法如SVM、KNN等。使用scikit-learn的StandardScaler实现:

from sklearn.preprocessing import StandardScaler
import numpy as np

# 示例数据
X = np.array([[1, 2], [3, 4], [5, 6]])

# 创建标准化器并拟合数据
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
print(X_scaled)

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

将特征缩放到指定范围,通常为[0,1],适合神经网络等对输入范围敏感的模型。使用MinMaxScaler:

from sklearn.preprocessing import MinMaxScaler

scaler = MinMaxScaler()
X_scaled = scaler.fit_transform(X)
print(X_scaled)

Robust Scaling

对于存在异常值的数据,RobustScaler使用中位数和四分位距进行缩放,对异常值更鲁棒:

from sklearn.preprocessing import RobustScaler

scaler = RobustScaler()
X_scaled = scaler.fit_transform(X)
print(X_scaled)

实战建议

在大模型训练场景中,建议根据数据分布选择合适的缩放方法。对于图像特征,通常使用标准化;对于文本向量,可考虑MinMax缩放。同时注意保存缩放器参数以用于推理阶段的数据预处理。

注意事项

  • 仅在训练集上拟合缩放器,测试集使用相同参数进行转换
  • 避免数据泄露,在特征工程中严格遵循训练/验证/测试集划分原则
  • 对于大模型,可考虑使用在线学习的缩放方法,适应数据流变化
推广
广告位招租

讨论

0/2000
星辰守望者
星辰守望者 · 2026-01-08T10:24:58
标准化适合大多数场景,但要注意别让均值为0、std为1的假设误导了分布本身。实际项目中我更倾向先看数据分布,再决定是否用RobustScaler处理异常值。
SharpLeaf
SharpLeaf · 2026-01-08T10:24:58
MinMax缩放在神经网络里确实有用,但别忘了它对异常值敏感。大模型训练时建议结合特征分布做动态调整,比如用在线缩放器适应数据流变化