你已经知道,机器学习模型本质上是一个从数据中学习模式以进行预测或决策的程序。但一旦你训练好一个模型,如何判断它是否真的表现良好呢?构建模型只是第一步;验证其性能同等重要,甚至更重要。仅仅假设一个训练好的模型能正常工作,可能会在后续带来严重问题。设想你构建了一个模型,用于预测客户是否会点击在线广告。你使用关于过往客户行为的历史数据来训练它。模型可能学习到一些模式,但它学习到的是正确的模式吗?也许它偶然学到,访问某些不常见网站的人更有可能点击,仅仅因为你的训练数据中包含了一些这样的例子。如果不进行恰当的测试,你将无法知道它是否能可靠地预测你实际关心的更广泛客户群体的行为。评估是严格检验模型是否在新数据上有效且可靠地执行其预期任务的过程。评估能增加你对模型的信心。如果你部署一个预测送达时间的模型,企业和客户需要信任其估计。评估提供客观、量化的证据,说明这些预测可能有多准确。你不必只寄希望于模型有效,而是可以使用具体指标来衡量其性能。例如,你可能会发现你的送达时间模型的平均误差为5分钟。这个具体的数字让相关方能够了解模型的能力和局限。同样地,如果你构建一个模型来检测装配线上的故障部件,评估指标可以精确告诉你它正确识别故障品的百分比,以及它错误地标记正常品的频率。这些信息对于决定模型是否适合使用非常必要。机器学习常常让你面临选择。你应该使用算法A还是算法B?你应该用设置X还是设置Y来配置你选择的算法?评估提供了一种系统的方法来比较不同的模型或同一模型的不同版本。通过训练多个模型并在相同的基准任务上使用相同的指标衡量其性能,你可以做出明智的决定,选择哪一个最适合你的特定问题。这就像对不同的跑步者进行计时赛,看看谁在特定赛道上跑得最快。没有这些计时赛(评估),选择最好的跑步者(模型)就只能靠猜测。此外,没有模型是完美的。评估不仅帮助你了解模型整体表现如何,还能看出其不足在哪里。模型可能整体准确率很高,但在特定数据子群上却持续表现不佳。例如,一个语音识别系统可能对成年人声音表现良好,但对儿童声音表现不佳。通过评估确定这些局限,对于理解模型的工作范围以及决定何时需要人工监督或辅助系统是必要的。"评估解决的一个重要方面是泛化能力。模型不仅需要在训练数据上表现良好,更重要的是,它需要在从未见过的新数据上表现良好。模型有可能记住训练数据,包括其噪声和特殊性,这种现象称为过拟合。这样的模型在它学习过的数据上可能看起来很完美,但在面对稍微不同的例子时却可能完全失效。使用与训练过程分离的数据来评估模型,是衡量其泛化能力并确保它在实践中有用的标准方法。我们将在课程后续部分学习如何恰当地准备用于评估的数据。"最后,评估结果不仅仅是最终分数;它们是指导模型开发过程的宝贵反馈。如果模型表现不佳,具体指标通常会给出原因的线索。预测误差通常很小,还是偶尔会出现非常大的误差?分类器是否混淆了两个特定的类别?这个反馈使你能够迭代:你可以调整模型,收集更多或不同的数据,或者尝试其他方法来解决已发现的不足。这种训练、评估和完善的迭代循环是构建有效机器学习应用的核心。没有评估,你将如同盲人摸象,无法系统地改进你的模型,甚至不知道是否需要改进。