泛化能力是机器学习的核心问题之一。一个模型真正的价值,不在于它对训练数据记住了多少,而在于它能否在未见样本上继续有效。

但这里立刻会遇到一个尴尬而根本的问题:真实的泛化能力并不能被直接观测,我们只能在有限数据上对它进行近似评估。

正因如此,一套科学的模型评估框架不可或缺——它并不是训练流程后的附属品,而是连接有限样本、模型选择与未见数据表现之间的桥梁。这套框架背后依赖的是统计学与机器学习理论中的一些核心思想:不确定性估计、重采样、偏差—方差权衡,以及经验风险与真实风险之间的差异。

评估本身不是工程琐事——这是很重要的判断。也就是说评估不只是“跑个分”,它决定你凭什么相信一个模型。

背景:偏差-方差分解(bias-variance tradeoff)

什么是偏差-方差分解?为什么这决定我们的背景? 偏差-方差分解实质上全称是“偏差-方差-噪声“分解,他解决的是一个很具有普适性的问题:所需解决问题的复杂度和模型复杂度的关系。具体的数学推导在此跳过,我们需要知道的是,最终在数学上我们可以写成以下形式:

E[L]=x(y(x)E[tx])2p(x)dx+xvar[tx]p(x)dx\mathbb{E}[L]=\int_\mathbf{x}(y(\mathbf{x})-\mathbb{E}[t|\mathbf{x}])^2p(\mathbf{x})\mathrm{d}\mathbf{x}+\int_\mathbf{x}var[t|\mathbf{x}]p(\mathbf{x})\mathrm{d}\mathbf{x}

式子分为两个部分 模型复杂度带来: •bias 下降 •variance 上升 所以我们真正寻找的不是“拟合最强”,而是“在未见数据上最稳的平衡点”。

原因:训练集的乐观性

这决定了我们不仅是在寻找训练集上的最优模型,我们真正关心的是“测试误差”,不是训练误差。训练误差几乎总会随着模型变复杂而下降。但这不代表模型更好,因为它可能只是更会记忆训练集。我们不是只关心某个模型在训练数据上能否拟合好,而是想知道它在新数据上的表现,也就是泛化能力。

评估框架的存在,是因为训练集会系统性地让我们过度乐观。

这里可以自然引入 overfitting

检验框架的确立

我整理了一套检验框架,如下: 每个方法回答一个问题: •它在估计什么? •优点是什么? •缺点是什么? •适合什么场景?

1. Hold-out / validation set

2. K折交叉验证

3. Repeated CV

4. Bootstrap

5. Independent test set / nested CV

评估不只关心泛化分数

应当注意到,我们的还注意到模型的稳健性和可解释性 引出:

•稳健性(robustness)

•可解释性(interpretability)

•特征稳定性

•校准(如果你愿意可加 calibration)

它们此时不再伪装成“模型评估主体”,而是被放在:

补充模型评估结论可信度的证据层

比如KW 更适合放在“任务0”或“任务1之前的预分析步骤”,因为KW 属于特征层面的统计分析工具,而不是模型层面的泛化评估工具。例如:

位置A:特征预筛选

先对每个候选特征做组间差异检验

筛掉明显无信号的特征

然后进入 CV

位置B:解释性辅助

模型跑完之后,拿表现好的特征再看:

•是否组间显著

•效应方向是什么

•与量表分数是否相关

多模型集成方法

对于一些本人项目科研场景的反思(读者可跳过)

MindENT 场景举例:

•patient-level CV 为什么必须做

•小样本为什么看 fold 波动

•KW 为什么只能做预分析不能替代泛化评估

•为什么还要看解释性和稳定性

特征方法

参考文献

1.element of statistical

2.陈焕然 - 主页 --- Huanran Chen - Homepage

3.A multimodal dialog approach to mental state characterization in clinically depressed, anxious, and suicidal populations.

4.收录于 · 机器学习原理与技术