欢迎来到我们的7部分数据科学和应用机器学习迷你课程!
在前一章中,我们介绍了5种有效的ML算法。他们利用正规化和合奏的强大机制。
在本指南中,我们将逐步介绍模型培训流程。
既然我们已经完成了困难的部分,实际上适合(也就是训练)我们的模型将是相当简单的。
我们将讨论一些关键技术,这些技术已成为该领域广泛接受的最佳实践。
同样,这个迷你课程是对数据科学和机器学习的温和介绍,所以我们还不会深入了解细节。我们将为后续步骤保存。
如何训练ML模型
最后,是时候建立我们的模型了!
看起来我们花了一段时间才到达这里,但专业数据科学家实际上将大部分时间花在了导致这一步骤的步骤上:
- 探索数据。
- 清理数据。
- 工程新功能。
再次,这是因为更好的数据胜过更高级的算法。
在本课程中,您将学习如何设置整个建模过程以最大限度地提高性能,同时 防止过度拟合。我们将交换算法,并自动为每个算法找到最佳参数。
“最后是模特训练!”
拆分数据集
让我们从一个关键但有时被忽视的步骤开始:花费你的数据。
将您的数据视为有限的资源。
- 您可以花一些时间来训练您的模型(即将其提供给算法)。
- 您可以花一些时间来评估(测试)您的模型。
- 但是你不能为两者重复使用相同的数据!
如果你根据用来训练它的相同数据评估你的模型,你的模型可能非常过度,你甚至不知道!应根据其预测新的,看不见的数据的能力来判断模型。
因此,您应该拥有数据集的单独培训和测试子集。
训练集用于拟合和调整模型。测试集被放在一边作为“看不见的”数据来评估您的模型。
- 在执行任何其他操作之前,您应该始终分割数据。
- 这是获得模型性能可靠估算的最佳方法。
- 拆分数据后,在准备选择最终型号之前,请勿触摸测试装置!
比较测试与训练性能使我们能够避免过度拟合... 如果模型在训练数据上表现很好但在测试数据上表现不佳,那么它就过度拟合了。
拆分数据集
让我们从一个关键但有时被忽视的步骤开始:花费你的数据。
将您的数据视为有限的资源。
- 您可以花一些时间来训练您的模型(即将其提供给算法)。
- 您可以花一些时间来评估(测试)您的模型。
- 但是你不能为两者重复使用相同的数据!
如果你根据用来训练它的相同数据评估你的模型,你的模型可能非常过度,你甚至不知道!应根据其预测新的,看不见的数据的能力来判断模型。
因此,您应该拥有数据集的单独培训和测试子集。
训练集用于拟合和调整模型。测试集被放在一边作为“看不见的”数据来评估您的模型。
- 在执行任何其他操作之前,您应该始终分割数据。
- 这是获得模型性能可靠估算的最佳方法。
- 拆分数据后,在准备选择最终型号之前,请勿触摸测试装置!
比较测试与训练性能使我们能够避免过度拟合... 如果模型在训练数据上表现很好但在测试数据上表现不佳,那么它就过度拟合了。
什么是超参数?
到目前为止,我们一直在随意谈论“调整”模型,但现在是时候更正式地对待这个主题了。
当我们讨论调优模型时,我们特别指的是调整超参数。
机器学习算法中有两种类型的参数。
关键的区别是模型参数可以直接从训练数据中学习,而超参数则不能。
“别介意我。只需随意按下按钮仔细调整参数。”
模型参数
模型参数是定义单个模型的学习属性。
- 例如回归系数
- 例如决策树分割位置
- 他们可以 直接 从培训数据中学习
超参数
超参数表示算法的“更高级别” 结构设置。
- 例如,正则化回归中使用的惩罚强度
- 例如,随机森林中包含的树木数量
- 在拟合模型之前确定它们是 因为它们无法从数据中学习
什么是交叉验证?
接下来,是时候介绍一个有助于我们调整模型的概念:交叉验证。
交叉验证是一种仅使用您的训练数据获得模型性能可靠估计的方法。
有几种方法可以交叉验证。最常见的10倍交叉验证将您的训练数据分成10个相等的部分(也称为折叠),基本上可以创建10个微型列车/测试分割。
这些是10倍交叉验证的步骤:
- 将数据拆分为10个相等的部分,或“折叠”。
- 训练你的模型9折(例如前9折)。
- 在剩下的1个“保持”折叠上进行评估。
- 执行步骤(2)和(3)10次,每次都进行不同的折叠。
- 平均所有10个保持折叠的表现。
10次保持折叠的平均表现是您的最终表现估计,也称为交叉验证得分。因为您创建了10个迷你火车/测试分割,所以这个分数通常非常可靠。
适合和调整模型
现在我们已将数据集拆分为训练和测试集,并且我们已经了解了超参数和交叉验证,我们已经准备好适应并调整我们的模型。
基本上,所有我们需要做的是执行每个上面详述的整个横确认循环 集超参数值 。我们想尝试 的高级别伪代码如下所示:
对于每种算法(即正则化回归,随机森林等):
对于要尝试的每组超参数值:
使用训练集执行交叉验证。
计算交叉验证的分数。
在此过程结束时,对于每个算法,您将为每组超参数值...提供交叉验证的分数。
例如:
然后,我们将在每个算法中选择最佳的超参数集 。
对于每种算法:
保持超参数值集具有最佳交叉验证得分。
在整个训练集上重新训练算法(无需交叉验证)。
它有点像饥饿游戏...每个算法都会将自己的“代表”(即模型训练最佳超参数值集)发送到最终选择,接下来会出现...
选择获胜模型
到目前为止,对于通过交叉验证进行调整的每种算法,您将拥有1个“最佳”模型。最重要的是,到目前为止您只使用过培训数据。
现在是时候评估每个模型并选择最好的模型,一个饥饿游戏风格。
“我志愿致敬!”
因为您已将测试集保存 为真正看不见的数据集,所以现在可以使用它来获得每个模型性能的可靠估计。
您可以选择各种 性能指标。我们不会在这里花太多时间,但总的来说:
- 对于回归任务,我们建议使用 均方误差(MSE) 或 平均绝对误差(MAE)。(值越低越好)
- 对于分类任务,我们建议使用 ROC曲线下面积(AUROC)。 (值越高越好)
这个过程非常简单:
- 对于每个模型,请对测试集进行预测。
- 使用这些预测和测试集中的“基础事实”目标变量计算性能指标。
在算盘上进行计算#TBT #math #retro #oldschool #oldskool #oldscool
最后,使用这些问题来帮助您选择获胜的模型:
- 哪种型号在测试装置上表现最佳?(性能)
- 它在各种性能指标中表现良好吗? (鲁棒性)
- 它是否也具有(训练集)中最佳的交叉验证分数(其中之一)? (一致性)
- 它是否解决了原有的业务问题? (胜利条件)
章节测验
准备好测验?
- (希望是免费赠品)选择一个:更好的数据或更好的算法。
- 什么时候应该将数据集拆分为训练和测试集,为什么?
- 模型参数和超参数之间的主要区别是什么?
- 解释交叉验证如何帮助您“调整”模型?
原文:https://elitedatascience.com/model-training