机器学习如何训练出最终模型

Jason Brownlee 2017年3月17日

我们用于对新数据进行预测的机器学习模型称为最终模型。

在应用机器学习时,如何训练出一个最终模型这可能是大家的一个疑惑。

初学者通常会问以下问题:

  • 如何用交叉验证进行预测?
  • 根据交叉验证应该选择哪种模型?
  • 在训练数据集上要建立模型吗?

这个帖子会消除大家的疑惑。

在这篇文章中,您将会了解如何确定您的机器学习模型,以便对新数据进行预测。

现在让我们开始吧。

Photoby Camera Eye Photography

什么是最终模型?

最终机器学习模型是用于对新数据进行预测的模型。

也就是说,给出新输入数据的例子,然后使用该模型预测输出的值。这可能是一个分类(分配标签)或回归(估实际值)模型。

例如,不管是判断猫还是狗的照片,还是明天的估计销售数量;机器学习项目的目标是获得最佳的最终模型,其中“最佳”由以下因素决定:

  • 数据:可用的历史数据。
  • 时间:在项目上花费的时间。
  • 程序:数据准备步骤,一个或多个算法,以及算法配置的选择。

在整个项目中,收集数据,花费大量时间;要使用数据准备程序,要使用的算法以及如何对其进行配置。

最终的模型是这个过程的巅峰之作,最后你会发现实际上就是要做预测。

  • 训练/测试数据集的目的

为什么要训练和测试数据集?

划分一个训练和测试数据集是快速评估对您问题的算法性能的一种方法。

训练数据集用于准备一个模型并进行训练的。

我们假设测试数据集是新的数据,其中输出值会在算法中被隐藏。我们从训练模型中收集来自测试数据集的输入数据的预测,并将其与测试集中保留的输出值进行比较。

比较测试数据集上的预测和保留的输出值,使我们能够在测试数据集上计算模型的性能。这是对未知数据做预测时,对算法在该问题上训练的技巧的估计。

  • 让我们来进一步学习

当我们评估一个算法时,我们实际上是评估整个算法的所有步骤,包括训练数据如何准备(如按比例放缩),算法的选择(例如KNN)以及如何配置所选择的算法(例如k= 3)。

对预测值的计算的度量是对整个程序技能的估计。

我们对一个算法的评估会依据:

  • 从“测试数据集的程序技巧”
  • 到“对未知数据处理的程序技巧”。

这个过程是一个飞跃,它要求:

  • 该程序足够强大,使得它的估计接近我们对未知数据的预期。
  • 性能测量的选择准确地捕获了我们对未知数据预测的兴趣。
  • 数据准备能够很好地在新的数据中被理解和重复使用,当预测值需要返回到原始状态或与原始输入值相关的状态时,它是可逆的。
  • 算法的选择要考虑其预期用途和操作环境(例如,复杂性或编程语言的选择)是有意义的。

测试集上整个程序的估计技能有很多。

事实上,使用训练/测试方法来估计未知数据的程序技能往往具有很大的方差(除非我们有很多数据要划分)。这意味着当它重复训练时,它通常会给出相差很大的结果。

结果是,我们可能不太了解程序实际上对未知数据执行的操作以及一个程序是如何与另一个程序进行比较的。

通常在时间允许的情况下,我们更愿意使用k-fold交叉验证。

  • k-fold交叉验证的目的

为什么我们使用k-fold交叉验证?

交叉验证是另一种对未知数据进行估计的方法。就像随机划分训练集和测试集。

交叉验证法可以在数据集的多个子集上系统地创建和估计多个模型。

这反过来又提供了一系列衡量标准:

  • 我们可以计算这些方法得出的结果的平均值,来了解这些程序的平均水平。
  • 我们还可以计算出它们的标准差,以了解实践中我们的期望值是如何变化的。

当您选择要使用的算法和数据准备程序时,这也有助于对程序进行更细微的比较。

此外,这些信息是非常宝贵的,因为您可以使用均值和差分来对实际中机器学习过程的预期表现给出置信区间。

训练集和测试集划分和k-flod交叉验证都是重抽样方法的示例。

  • 为什么要使用重抽样方法?

机器学习的应用问题是尝试对未知数据进行建模。

在给定的预测建模问题上,理想模型是在对新数据进行预测时,执行得最好的模型。

我们没有新数据,所以我们必须用统计技巧。

训练集和测试集划分和k-flod交叉验证称为重抽样方法。重抽样方法是对数据集进行抽样和估计未知数量的统计过程。

在应用机器学习的情况下,我们有兴趣估计机器学习在未知数据上的学习过程的技能。更具体地说,预测是通过机器学习过程进行的。

一旦我们可以进行估计,我们则完成了重抽样方法。

  • 如果您正在使用训练集和测试集划分模型,那意味着您可以丢弃分割数据集和训练有素的模型。
  • 如果您使用k-fold交叉验证,那意味着您可以丢弃所有受过训练的模型。

他们已经达到目的,就不再需要了。

你现在就准备好确定你的模型了。

  • 如何确定模型?

您可以通过在所有数据上应用所选的机器学习过程来确定模型。

通过最终的模型,您可以:

  • 保存模型供以后或运行使用。
  • 对新数据进行预测。

那么交叉验证模型和train-test数据集呢?

他们被丢弃了,他们不再被需要了。他们就是用来帮助您选择一个确定的程序来确定模型。

  • 常见问题

这部分列出了一些你可能会遇到的问题。

为什么不让模型在训练数据集上训练?为什么保持交叉验证模型的最佳模式?

如果你喜欢,你可以这样做。在技能估计的时候重复使用其中一个模型可以节省很多时间和精力。

如果需要几天、几个星期甚至几个月来训练一个模型,这是一个很大的工程。

对所有可用数据进行训练时,您的模型可能会比仅用于估计模型性能的子集数据更好。

这就是为什么我们更愿意在所有可用的数据上训练出最终的模型。

在不同的数据集上训练,模型的性能也会不同吗?

我认为这是关于确定最终模型的一个误区。

换一种说法:

  • 如果您在所有可用数据上训练模型,那么您如何知道该模型的表现呢?

您已经使用重抽样方法回答了这个问题。

如果程序设计得好,则使用train-test或k-flod交叉验证计算的性能测量值适当地描述了对所有可用历史数据进行训练的最终模型的效果有多好。

如果您使用k-fold交叉验证,您将会估算出模型在平均水平上如何“错误”(或相反地,如何“正确”),以及该错误或正确性的预期扩散程度。

这就是为什么您精心设计的测试工具在机器学习中是极其重要的。更强大的测试工具将使您更加依赖于估计的性能。

每次训练模型时,我都会获得不同的分数; 我应该选择分数最高的模型吗?

机器学习算法是随机的,并且这种在相同数据上的不同性能的表现是可以预期的。

重抽样方法,如重复训练/测试或重复k-flod交叉验证将有助于处理方法中有多少变动。

如果是一个真正要解决的问题,您可以创建多个最终模型,并从一个预测集合中获得平均值,以减少差异。

关于这方面我在这篇文章中会谈到更多:

  • 接受机器学习中的随机性(http://machinelearningmastery.com/randomness-in-machine-learning/)
  • 总结

在这篇文章中,你学会了如何训练出最终的机器学习模型。

您已经克服了确定您的模型的障碍,例如:

  • 了解重抽样程序的目标,例如随机训练集和测试集的拆分和k折交叉验证。
  • 在所有可用数据上训练一个新模型时,模型的确定。
  • 将估计性能的模型与最终确定模型分开。

您是否还有其他我没提及的关于确定最终模型的问题?

在评论中提问,我会尽力帮助。

END.

来源:http://machinelearningmastery.com/train-final-machine-learning-model/

PPV课小组翻译,转载请联系授权。

原文发布于微信公众号 - PPV课数据科学社区(ppvke123)

原文发表时间:2017-03-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏量化投资与机器学习

用于算法交易的神经网络基于多变量时间序列

数据准备 为了更好地了解多维时间序列,让我们来看看如何看图像,其实也不只有两个尺寸(高度和宽度),还有表示颜色的“深度”: 在时间序列的情况下,我们的图像只是一...

29410
来自专栏ATYUN订阅号

利用TensorFlow生成图像标题

图像标题生成器模型结合了计算机视觉和机器翻译的最新进展,利用神经网络生成现实的 图像标题。神经图像标题模型被训练,以最大限度地产生给定输入图像的字幕的可能性。并...

6865
来自专栏集智的专栏

使用腾讯云 GPU 学习深度学习系列之六:物体的识别与定位

本文以如何识别马路上的行人、车辆为主题,介绍了基于 Tensorflow 的 SSD 模型如何应用在物体识别定位项目中。

1.8K12
来自专栏奇点大数据

深度学习入门

机器学习技术正越来越多的出现在消费级产品上,比如照相机和智能手机。 机器学习系统可用于识别图像中的对象,将语音转换成文本,选择搜索结果的相关项,以及匹配新闻、帖...

953
来自专栏人工智能LeadAI

R-CNN 物体检测第二弹(Fast R-CNN)

今天,重看了 R-CNN 的后续改进 Fast R-CNN(Arxiv版)-本文中提到的paper,若未特别指明,说的就是此版本。 这里提一把辛酸泪。15年8月...

4716
来自专栏null的专栏

可扩展机器学习——线性回归(linear Regression)

注:这是一份学习笔记,记录的是参考文献中的可扩展机器学习的一些内容,英文的PPT可见参考文献的链接。这个只是自己的学习笔记,对原来教程中的内容进行了梳理,有些图...

3365
来自专栏AI科技大本营的专栏

OCR大突破:Facebook推出大规模图像文字检测识别系统——Rosetta

作者 | Fedor Borisyuk,Albert Gordo,Viswanath Sivakumar

5157
来自专栏人工智能头条

预测建模、监督机器学习和模式分类概览

1954
来自专栏磐创AI技术团队的专栏

Ian Goodfellow等提出自注意力GAN,ImageNet图像合成获最优结果!

1173
来自专栏决胜机器学习

深层神经网络参数调优(一) ——方差、偏差与正则化

深层神经网络参数调优(一)——方差、偏差与正则化 (原创内容,转载请注明来源,谢谢) 一、概述 现在来到ng【深层神经网络参数调优】专题的学习,这部分主要是...

4348

扫码关注云+社区

领取腾讯云代金券