4、特征构造中的偏差:特征选择偏差、特征缩放偏差、特征交叉带来的隐性偏差

特征构造并非中立的数据操作,每一步都可能引入系统性偏差。若在构造阶段未对样本分布进行校验,后续模型将放大这些偏差,导致泛化能力下降。本章聚焦三类核心偏差:特征选择偏差、特征缩放偏差以及特征交叉带来的隐性偏差。

4.1 特征选择偏差

特征选择偏差发生在从原始特征池中筛选子集的过程中。当筛选逻辑与目标变量存在间接关联,或筛选过程使用了未来信息(数据泄露),偏差便已形成。

偏差类型 典型场景 后果
过滤式偏差 基于全量数据的方差阈值或卡方检验筛选特征 引入未来信息,高估特征重要性
包裹式偏差 使用目标变量反复迭代选择特征子集 过拟合训练集,泛化性能下降
嵌入式偏差 正则化路径依赖样本顺序或类别不平衡 稀疏化方向偏向多数类特征
校验要点:特征选择必须在训练集内完成,且每次交叉验证折内独立执行选择逻辑。使用 SelectKBest 或 RFECV 时,务必嵌入 Pipeline 防止全局统计量泄露。

4.2 特征缩放偏差

特征缩放(标准化、归一化、鲁棒缩放)的统计量若来自有偏样本,缩放后的特征将扭曲原始分布。常见偏差来源包括:

  • 离群值污染:Min-Max 归一化受极端值影响,导致正常样本被压缩到狭窄区间。
  • 分布偏移:训练集与验证集均值/标准差差异大时,标准化后特征分布错位。
  • 分组缩放忽略:时间序列或分组数据中,全局缩放抹平了组内相对差异。
建议:对含有离群值的特征优先使用 RobustScaler(基于中位数和 IQR);对时间序列特征使用 GroupBy + 组内缩放,保留组间相对量纲。
特征缩放偏差对比:全局缩放 vs 分组缩放 全局 Min-Max 归一化 离群值 正常样本被压缩到 [0, 0.15] 区间 离群值拉伸到 [0.85, 1.0] 分组内 Robust 缩放 组 A 组 B 组内 [0, 0.46] 组内 [0, 0.47] 保留组内相对差异,离群值不跨组污染

4.3 特征交叉带来的隐性偏差

特征交叉(组合、多项式、笛卡尔积)在提升表达力的同时,可能引入隐性偏差——即交叉特征与目标变量之间产生虚假关联,或交叉后样本稀疏导致统计不稳定。

4.3.1 稀疏交叉偏差

当两个高基数类别特征交叉时,大量组合在训练集中仅出现一次或零次。模型对这些组合的权重估计完全依赖少量样本,极易过拟合。

# 示例:高基数交叉导致稀疏
import pandas as pd
from sklearn.model_selection import train_test_split

df = pd.DataFrame({
    'user_id': [f'U{i}' for i in range(1000)],
    'item_id': [f'I{i}' for i in range(500)],
    'label': [0, 1]*500
})
# 交叉后组合数 = 1000 * 500 = 500,000,但样本仅 1000 行
df['cross'] = df['user_id'] + '_' + df['item_id']
print(f"唯一交叉组合数: {df['cross'].nunique()}")  # 输出 1000
print(f"重复组合数: {df['cross'].duplicated().sum()}")  # 输出 0
风险提示:稀疏交叉特征在树模型中容易成为“记忆节点”,在 LR/Embedding 模型中导致参数无法收敛。建议对交叉组合进行频次过滤(如 min_support=5),或使用哈希技巧压缩维度。

4.3.2 交叉方向偏差

交叉操作的顺序和方向会影响偏差分布。例如,A × B 与 B × A 在非对称交叉(如减法、除法)中产生不同偏差模式。

交叉类型 偏差来源 校验方法
加法交叉 (A+B) 量纲差异导致大数主导 交叉前先标准化
乘法交叉 (A×B) 零值或负值放大稀疏性 检查零值比例,考虑偏移量
除法交叉 (A/B) 分母接近零时产生极端值 添加平滑项 ε,或使用分箱后比率
类别笛卡尔积 长尾组合统计不可靠 频次阈值 + 回退策略
特征交叉隐性偏差的产生与校验流程 特征 A 特征 B 交叉操作 稀疏交叉偏差 组合频次 < 5 统计不可靠 → 过拟合 交叉方向偏差 A/B vs B/A 分布不对称 量纲/零值放大极端值 虚假关联偏差 交叉后与目标偶然相关 置换检验可识别 样本偏差校验:频次过滤 + 置换检验 + 分组验证 确保交叉特征统计可靠、方向一致、无虚假关联

4.4 综合校验策略

针对特征构造中的三类偏差,建议在特征工程流水线中嵌入以下校验步骤:

  1. 选择阶段:使用交叉验证内的特征选择,记录每折选中特征的稳定性(Jaccard 相似度)。
  2. 缩放阶段:对比缩放前后特征分布(KS 检验),确保训练/验证集分布一致。
  3. 交叉阶段:对交叉特征进行频次统计,剔除低频组合;对连续交叉进行离群值截断。
  4. 集成校验:构造 shadow 特征(随机打乱标签后的交叉特征),比较真实交叉与 shadow 交叉的重要性差异。
核心原则:特征构造的每一步都应在样本偏差校验的监督下进行。没有校验的构造,本质上是将数据中的噪声和偶然模式编码为特征,最终损害模型的泛化能力。