3. 对照实验设计原则

在自动机器学习(AutoML)与特征工程的对照实验中,实验设计的质量直接决定了结论的可信度。本章围绕四项核心原则展开:控制变量法、基线模型设定、随机种子与可重复性、实验记录规范。遵循这些原则,能够有效隔离特征工程带来的真实影响,避免混淆因素对实验结果的干扰。

3.1 控制变量法:隔离特征工程变量

控制变量法的核心思想是:在对比两组实验时,只改变一个关键因素,其余条件保持完全一致。在特征工程实验中,这个关键因素通常是“是否应用某类特征变换”或“是否引入某组新特征”。

关键控制项清单:
  • 数据切分:训练集、验证集、测试集的划分方式必须相同。
  • 模型算法:使用相同的模型族(如 LightGBM、XGBoost)及超参数配置。
  • 评估指标:统一使用 AUC、LogLoss、RMSE 等,避免混合使用不同量纲的指标。
  • 预处理流水线:缺失值填充、标准化、编码方式等必须一致。
  • 计算资源:尽量在同一硬件环境、同一批处理框架下运行。

下表展示了一个典型的控制变量实验设计矩阵,其中“特征工程”为唯一自变量:

实验组 特征工程策略 模型 数据切分 评估指标
基线组 原始特征(无变换) LightGBM (lr=0.1, n_est=100) 随机 70/15/15 AUC
实验组 A 原始特征 + 多项式交互 LightGBM (lr=0.1, n_est=100) 随机 70/15/15 AUC
实验组 B 原始特征 + 目标编码 LightGBM (lr=0.1, n_est=100) 随机 70/15/15 AUC
实践建议:在代码中通过 config 字典统一管理所有控制变量,避免因手动修改参数导致的不一致。

3.2 基线模型设定

基线模型是衡量特征工程效果的“标尺”。没有基线,任何性能提升都缺乏参照。基线设定应遵循以下原则:

  • 简单优先:优先使用逻辑回归、决策树或默认参数的 LightGBM 作为基线。
  • 零特征工程:基线组只使用原始特征,不进行任何衍生、编码或选择。
  • 固定随机种子:基线组与实验组使用相同的随机种子,确保初始条件一致。
  • 多基线对比:在复杂任务中,可设置“弱基线”(简单模型)和“强基线”(调优后的默认模型)。
常见误区:不要将“无特征工程 + 复杂模型”作为唯一基线。复杂模型可能掩盖特征工程的实际贡献,导致误判。

下图展示了基线模型与特征工程实验组之间的对比逻辑:

基线模型与特征工程实验组对比流程 原始特征 基线组:无特征工程 实验组:特征工程 LightGBM(相同超参数) LightGBM(相同超参数) 基线 AUC = 0.752 实验组 AUC = 0.813

3.3 随机种子与可重复性

可重复性是科学实验的基石。在机器学习实验中,随机种子控制着数据打乱、模型初始化、特征选择等环节的随机性。设定固定种子可以确保:

  • 实验复现:其他研究者或未来的你能够完全复现实验结果。
  • 公平对比:消除随机波动对实验结论的干扰。
  • 调试便利:当结果异常时,可以回溯到特定种子下的中间状态。
种子设定规范:
import random, numpy as np, torch, lightgbm as lgb

# 全局种子
SEED = 42
random.seed(SEED)
np.random.seed(SEED)

# 深度学习框架(如使用)
torch.manual_seed(SEED)
torch.cuda.manual_seed_all(SEED)

# 模型种子
lgb_model = lgb.LGBMClassifier(random_state=SEED)

# 数据切分种子
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=SEED
)
注意:不同库的随机种子可能独立运作。务必在数据加载、模型训练、特征选择等每个环节都显式设置种子,避免“伪可重复”。

3.4 实验记录规范

实验记录是实验设计的“最后一公里”。没有规范的记录,再好的实验设计也无法沉淀为可复用的知识。推荐使用结构化记录方式,包含以下维度:

记录维度 具体内容 示例
实验元信息 实验编号、日期、实验者、目的 EXP-003, 2025-03-15, 张三, 测试多项式交互
环境配置 Python 版本、库版本、硬件信息 Python 3.10, lightgbm==4.0.0, 16GB RAM
数据信息 数据集名称、样本量、特征数、切分比例 credit_train, 50000 rows, 45 features, 70/15/15
特征工程详情 具体变换、参数、是否标准化 多项式交互 degree=2, 目标编码 kfold=5
模型配置 算法、超参数、训练轮数 LightGBM, lr=0.1, n_est=200, early_stop=20
评估结果 主要指标、标准差、运行时间 AUC=0.813 ± 0.005, 耗时 45s
备注 异常现象、待验证假设、下一步计划 特征交互后训练时间增加 30%

下图展示了实验记录的完整生命周期,从设计到归档:

实验记录生命周期 1. 实验设计 2. 实验执行 3. 结构化记录 4. 归档与分享 每个阶段的关键产出 • 设计阶段:实验编号、假设、控制变量清单 • 执行阶段:代码版本、运行日志、中间结果 • 记录阶段:结构化表格、指标汇总、可视化 • 归档阶段:README、配置文件、结果文件打包
推荐工具:使用 MLflow、Weights & Biases 或 TensorBoard 自动记录实验参数与指标。对于小型项目,至少使用 Markdown 或 Excel 维护一份实验日志。

3.5 原则总结

对照实验设计的四项原则相互支撑,缺一不可:

  • 控制变量法确保特征工程是唯一的自变量。
  • 基线模型提供性能对比的参照系。
  • 随机种子保障实验的可复现性。
  • 实验记录让知识可积累、可追溯。