本教程系统梳理了用于解决模型评估、模型选择和算法选择这三项核心任务的不同技术方法,结合理论分析与实证研究,深入剖析每项技术的优势与局限。最后,给出实用建议,助力机器学习研究与应用中的最佳实践落地。
01 简介:基本的模型评估项和技术
机器学习已深度融入我们的日常生活——无论作为消费者、客户、研究者还是从业者。将预测建模技术应用于研究或商业问题时,共同目标始终是:做出足够精准的预测。用模型拟合训练数据并不困难,但如何了解模型的泛化能力?如何判断模型是否只是机械记忆训练数据,而无法对未见样本做出良好预测?还有,如何甄选优质模型?或许存在更合适的算法来处理当前问题?
模型评估并非机器学习工作流程的终点。在数据处理之前,我们应提前规划并使用恰当的技术。本文将概述这类技术与选择方法,并介绍如何将其融入更大的工程——即典型的机器学习工作流。
1.1 性能评估:泛化性能 vs. 模型选择
让我们思考这个问题:“如何评估机器学习模型的性能?”典型回答可能是:“首先,将训练数据输入学习算法训练模型。其次,预测测试集标签。最后,计算模型在测试集上的预测准确率。”然而,评估模型性能远非如此简单。或许我们应该换个角度思考:“我们为什么要关心性能评估?”理论上,模型性能评估能揭示模型的泛化能力——在未见数据上执行预测是应用机器学习或开发新算法的核心议题。通常,机器学习包含大量实验,例如超参数调整。在训练数据集上用不同超参数设置运行学习算法,最终得到不同模型。由于我们期望从这些超参数配置中选出性能最优的模型,因此需要为每个模型评估性能,以便进行排序。
我们还需在微调算法之外更进一步:不仅是在给定环境下实验单个算法,还要对比不同算法,通常从预测性能和计算性能两方面进行比较。总结一下,评估模型预测性能的主要作用如下:
- 模型评估:确定模型在独立测试集上的泛化性能。
- 模型选择:从多个候选模型(不同超参数或不同算法)中选出最优。
- 算法选择:比较不同学习算法在特定问题上的表现,以决定使用哪种算法。
虽然上述三个子任务都旨在评估模型性能,但所需方法各不相同。本文将概述解决这些子任务所需的不同方法。
我们当然希望尽可能精确地预测模型的泛化性能。然而,本文的一个要点是:如果偏差对所有模型影响等价,那么有偏性能评估基本可以完美进行模型选择和算法选择。若要通过排序选出最优模型或算法,我们只需知道它们的相对性能。例如,如果所有性能评估都存在偏差且低估了性能(10%),这不会影响最终排序。具体来说,若得到以下三个模型,其预测准确率如下:
M2: 75% > M1: 70% > M3: 65%
若添加 10% 的性能偏差(低估),则三种模型排序不变:
M2: 65% > M1: 60% > M3: 55%
但需注意,如果最佳模型(M2)的泛化准确率仅为 65%,显然这个精度非常低。评估模型的绝对性能可能是机器学习中最难的任务之一。


图2:留出验证方法的图示
