Modeling Workflow

statistics
Published

May 27, 2026

Perspective

Modeling workflow 是读建模类工作时容易被忽略、但决定结论可信度的部分。论文往往只展示”最后那个模型有多好”,而真正决定结果是否可信的,是它怎么走到那个模型的——尤其是评估和最终验证有没有泄漏。

先记住一个实用边界:建模不是一条直线,而是一个带循环的流程;最危险的环节是用来”调”模型的数据和用来”验”模型的数据有没有分干净。 如果调参时反复看了最终验证集,再好的性能数字也不可信。

Definition

A modeling workflow is the ordered but iterative process of going from raw data to a validated model: exploring the data, engineering features, tuning and selecting models, evaluating them, looping back to refine, and finally validating on data held out until the very end.

中文理解:建模流程是”从原始数据到可信模型”的有序但循环的过程。它强调两件事:一是探索与精炼之间要反复迭代,二是最终验证数据必须留到最后、只看一次。

Why It Matters

流程顺序直接决定结论能不能信:

  • 评估和调参用同一份数据,会让性能虚高(过拟合到验证集)。
  • Feature engineering 如果用了全量数据(包括测试集)的统计量,就发生了 data leakage。
  • 最终验证如果被反复窥探,它就不再是”未见过的数据”,泛化估计失效。

读论文时,看作者是否把这些环节分清楚,比看最后那个准确率数字更重要。

The Workflow

这一章给出的标准流程是一个带循环的链条:

EDA → feature engineering → model tuning/selection → model evaluation
        ↑                                                    │
        └──────────────  loop back  ─────────────────────────┘
                                                             │
                                                             ▼
                                                    final validation

EDA(探索性数据分析)

先看数据:分布、缺失、异常、变量之间的关系。这一步常用 descriptive model(见 statistical-modeling),目的是”看见数据结构”,为后面的特征和模型选择提供线索。

Feature engineering(特征工程)

基于 EDA 的理解,构造、变换、筛选特征:编码类别变量、处理缺失、标准化、构造交互项等。关键纪律:所有依赖数据统计量的变换(如标准化、缺失填补)只能从训练数据学习,再应用到验证/测试数据,否则就是 leakage。

Model tuning / selection(调参与选择)

尝试不同模型和超参数,通常用 cross-validation 在训练数据内部比较。这一步是”竞争”环节,可能反复试很多组合。

Model evaluation(模型评估)

用合适的指标评估候选模型的表现(见 supervised-unsupervised-learning 里的指标选择)。评估结果会反馈到前面:可能需要回到 EDA 重新理解数据,或回到 feature engineering 改进特征。

Loop back(回到 EDA / feature engineering)

这是流程的核心——它是迭代的。评估暴露的问题(某类样本预测差、某特征无用、残差有结构)会驱动新一轮探索和特征改造。大部分建模时间花在这个循环里。

Final validation(最终验证)

当模型经过充分迭代、定下来之后,才在一直留到最后、从未参与调参的数据上做一次最终验证。这一步给出对真实泛化性能的诚实估计。它应该只做一次——一旦用它来反过来调模型,它就被”污染”了。

Key Points

  • 建模流程是带循环的,不是一条直线;大部分工作在 EDA ↔︎ feature engineering ↔︎ tuning ↔︎ evaluation 的迭代里。
  • EDA 先看数据结构,为特征和模型选择提供依据。
  • Feature engineering 的所有数据驱动变换只能从训练数据学习,避免 data leakage。
  • Tuning/selection 通常用 cross-validation 在训练数据内部比较候选。
  • Evaluation 的结果会反馈,驱动回到 EDA 或 feature engineering 再迭代。
  • Final validation 用一直 held-out 的数据,只做一次,给出诚实的泛化估计。
  • 最危险的错误是用最终验证集反复调模型,或在特征工程中泄漏测试集信息。

Reading Checks

读到一个建模流程时,可以按这个顺序问:

  1. 作者是否区分了用于调参的数据和用于最终验证的数据?
  2. Feature engineering(标准化、填补、特征选择)是只在训练数据上拟合的吗?
  3. 模型选择用了 cross-validation,还是只在一次划分上比较?
  4. 报告的性能是来自最终 held-out 数据,还是来自调参时反复看过的数据?
  5. 作者有没有说明迭代过程,还是只展示了最终模型(可能掩盖了多次窥探验证集)?

Note

对我来说,这个流程图最有用的不是它的步骤名,而是两个提醒:一,建模是循环的,好结果往往来自多轮 EDA 和特征改造,而不是一次选对模型;二,最终验证集是”一次性”资源,它的价值就在于从未被用来做决定。读论文时,谁把这两件事做扎实,结论才值得信。

Sources

  • Kuhn & Silge, Tidy Modeling with R, Chapter 1: Software for Modeling