第 5 章. 训练和评估模型
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
在前面的章节中,我们已经介绍了如何确定要解决的问题、制定解决计划、构建简单的管道、探索数据集以及生成初始特征集。通过这些步骤,我们收集到了足够的信息,可以开始训练一个适当的模型。这里的 "适当的模型 "指的是一个非常适合手头任务并且有很好表现机会的模型。
在本章中,我们将首先简要介绍选择模型时的一些注意事项。然后,我们将介绍分离数据的最佳实践,这将有助于在现实条件下评估模型。最后,我们将介绍分析建模结果和诊断错误的方法。
最简单合适的模式
现在 ,我们已经准备好训练一个模型,我们需要决定从哪个模型开始。尝试所有可能的模型,对它们进行基准测试,然后根据某些指标在保留的测试集上挑选出结果最好的模型,这可能很有诱惑力。
一般来说,这不是最好的方法。它不仅计算量大(有很多模型集,每个模型有很多参数,所以实际上你只能测试一个次优子集),而且还把模型当作预测黑盒子,完全忽视了ML 模型在学习方式上编码了对数据的隐含假设。
不同的模型会对数据做出不同的假设,因此适合不同的任务。此外,由于 ML 是一个迭代领域,您需要选择可以快速构建和评估的模型。
首先,让我们来定义如何识别简单的模型。然后,我们将举例说明数据模式和利用这些模式的适当模型。
简单模型
简单的模型应该是快速实现、易于理解和可部署的:快速实现是因为您的第一个模型很可能不会是最后一个;易于理解是因为它能让您更轻松地进行调试;可部署是因为这是由 ML 驱动的应用程序的基本要求。让我们先来探讨一下我所说的快速实施是什么意思。
快速实施
选择 对您来说易于实施的模型。一般来说,这意味着要选择一个广为人知的模型,该模型有多个相关教程,而且人们能够帮助您(尤其是当您使用我们的 ML 编辑器提出明确的问题时!)。对于一个新的 ML 驱动型应用程序来说,在处理数据和部署可靠的结果方面,您将面临足够多的挑战,因此最初应尽力避免所有令人头疼的模型问题。
如果可能的话,从使用 Keras 或 scikit-learn 等流行库中的模型开始,在进入没有文档且在过去九个月内没有更新过的实验性 GitHub 仓库之前,请暂缓行动。
模型实施后,您需要检查并了解它是如何利用数据集的。为此,您需要一个可以理解的模型。
可以理解
模型的可解释性和可解释性描述了 模型揭示导致其做出预测的原因(如给定的预测因子组合)的能力。可解释性在很多方面都很有用,比如验证我们的模型没有以不可取的方式出现偏差,或者向用户解释他们可以做些什么来改善预测结果。它还能让迭代和调试变得更加容易。
如果能提取出模型决策所依赖的特征,就能更清楚地了解哪些特征需要添加、调整或移除,或者哪个模型可以做出更好的选择。
遗憾的是,即使是简单的模型,模型的可解释性通常也很复杂,有时对于较大的模型更是难以解决。在"评估特征重要性 "一文中,我们将介绍应对这一挑战的方法,并帮助您确定模型的改进点。除其他外,我们还将使用黑盒子解释器,这种解释器试图提供对模型预测的解释,而不考虑其内部工作原理。
逻辑回归或决策树等较简单的模型往往更容易解释,因为它们提供了一些特征重要性的衡量标准,这也是它们通常是首先尝试的好模型的另一个原因。