在大模型训练中,特征缩放是特征工程的重要环节。本文将介绍几种常用的特征缩放技术及其在实际项目中的应用。
标准化 (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缩放。同时注意保存缩放器参数以用于推理阶段的数据预处理。
注意事项
- 仅在训练集上拟合缩放器,测试集使用相同参数进行转换
- 避免数据泄露,在特征工程中严格遵循训练/验证/测试集划分原则
- 对于大模型,可考虑使用在线学习的缩放方法,适应数据流变化

讨论