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 作为基线。
- 零特征工程:基线组只使用原始特征,不进行任何衍生、编码或选择。
- 固定随机种子:基线组与实验组使用相同的随机种子,确保初始条件一致。
- 多基线对比:在复杂任务中,可设置“弱基线”(简单模型)和“强基线”(调优后的默认模型)。
常见误区:不要将“无特征工程 + 复杂模型”作为唯一基线。复杂模型可能掩盖特征工程的实际贡献,导致误判。
下图展示了基线模型与特征工程实验组之间的对比逻辑:
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% |
下图展示了实验记录的完整生命周期,从设计到归档:
推荐工具:使用
MLflow、Weights & Biases 或 TensorBoard 自动记录实验参数与指标。对于小型项目,至少使用 Markdown 或 Excel 维护一份实验日志。
3.5 原则总结
对照实验设计的四项原则相互支撑,缺一不可:
- 控制变量法确保特征工程是唯一的自变量。
- 基线模型提供性能对比的参照系。
- 随机种子保障实验的可复现性。
- 实验记录让知识可积累、可追溯。