在大模型训练中,特征缩放是特征工程的关键步骤之一。最近在处理一个大规模文本分类数据集时,我踩了一个大坑,特来分享一下。
问题背景
我们有一个包含文本特征和数值特征的混合数据集,其中数值特征范围差异很大(0-1000000)。按照常规做法,我尝试了Min-Max缩放和Z-Score标准化两种方法。
实际踩坑过程
第一步:Min-Max缩放
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
X_scaled = scaler.fit_transform(X)
结果发现,当使用了异常值(比如某个特征值为1000000)时,缩放后的数据分布极度不均匀,大部分数据集中在很小的区间内。
第二步:Z-Score标准化
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
虽然解决了异常值问题,但对模型训练效果提升不明显。
真正的解决方案
最终采用RobustScaler:
from sklearn.preprocessing import RobustScaler
scaler = RobustScaler()
X_scaled = scaler.fit_transform(X)
这个方法基于中位数和四分位距,对异常值不敏感,非常适合大模型训练中的数据预处理。
复现建议
- 先观察数据分布
- 用不同缩放方法分别测试
- 根据异常值情况选择RobustScaler
在大模型时代,数据质量直接决定模型效果,千万别忽视基础特征工程!

讨论