应用机器学习过程

随着时间的推移,在处理应用机器学习问题时,你会开发出一种模式或流程,以快速获得良好的正常结果。

一旦开发完成,你就可以在一个又一个项目上反复使用此过程。你的流程越健壮、越发达,你就能越快地获得可靠的结果。

在这篇文章中,我想与你分享我解决机器学习问题的过程框架。

你可以将其用作下一个项目的起点或模板。

5步系统化过程

我喜欢使用5个步骤的流程:

  • 定义问题。
  • 准备数据。
  • 抽查算法。
  • 改善结果。
  • 展示结果。

这个过程有很大的灵活性。例如,“准备数据”步骤通常分为分析数据(汇总和图表)和准备数据(为实验准备样本)。“抽查”步骤可能涉及多个正式实验。

这是一条很大的生产线,我试图以线性的方式通过它。使用自动化工具的伟大之处在于,你可以后退几个步骤(比如从“改善结果”返回到“准备数据”),然后插入新的数据集转换,并在中间的步骤中重新运行实验,以查看得出哪些有趣的结果,以及它们与你以前执行的实验相比有何不同。

我使用的过程是从数据库中的知识发现(或KDD)的标准数据挖掘过程改编而来的,有关更多详细信息,请参阅什么是数据挖掘和KDD一文。

1、定义问题

我喜欢用三个步骤来定义这个问题。我喜欢快速行动,我使用这个小型流程非常快速地从几个不同的角度来看待问题:

  • 第一步:问题出在哪里?非正式和正式地描述问题,并列出假设和类似问题。
  • 第二步:为什么要解决这个问题?列出你解决问题的动机、解决方案提供的好处以及如何使用该解决方案。
  • 第三步:我该如何解决这个问题?描述如何手动解决问题以刷新领域知识。

你可以在文章中了解有关此过程的更多信息:

如何定义你的机器学习问题

准备数据

我以数据分析阶段作为数据准备的开始,该阶段涉及总结属性并使用散点图和直方图将其可视化。我还想详细描述每个属性以及属性之间的关系。这项繁重的工作迫使我在数据被算法丢失之前,在问题的上下文中思考数据。

实际的数据准备过程分为三步:

  • 步骤1:数据选择:考虑哪些数据可用,哪些数据缺失,哪些数据可以删除。
  • 步骤2:数据预处理:通过格式化、清理和采样来组织你选择的数据。
  • 步骤3:数据转换:使用缩放、属性分解和属性聚合,通过工程特性转换预处理后的数据,为机器学习做好准备。

你可以在帖子中了解有关此数据准备过程的更多信息:

如何为机器学习准备数据

抽查算法

默认情况下,我在测试工具中使用10折交叉验证。所有实验(算法和数据集组合)重复10次,收集并报告精度的平均值和标准差。我还使用统计显著性检验从噪音中剔除有意义的结果。盒图对于总结每个算法和数据集对的精度结果分布非常有用。

我抽查算法,这意味着将一组标准的机器学习算法加载到我的测试工具中,并执行正式的实验。我通常在我准备的数据集的所有转换和缩放版本上运行来自所有主要算法系列的10-20个标准算法。

抽查的目标是找出适合于找出问题结构的算法和数据集组合的类型,以便通过有重点的实验来更详细地研究它们。

在此步骤中,可能会对性能良好的算法系列执行更有针对性的实验,但算法调整将留给下一步。

你可以在帖子中找到有关定义测试工具的更多信息:

如何评价机器学习算法。

你可以在帖子中发现抽查算法的重要性:

为什么要抽查机器学习问题的算法。

改善结果

抽查过后,是时候从钻机上挤出最好的结果了。我通过对性能最好的算法的参数运行自动敏感度分析来做到这一点。我还使用性能最好的算法的标准集成方法来设计和运行实验。我花了很多时间思考如何从数据集或已被证明执行良好的算法家族中获得更多。

同样,在这里,结果的统计意义至关重要。专注于方法并玩弄算法配置是如此容易。只有当结果是有意义的,并且所有的配置都已经被考虑好,并且实验被批量执行时,结果才是有意义的。我也喜欢维护我个人的排行榜,在一个问题上取得最好的结果。

总括而言,改善成果的过程包括:

  • 算法调优:其中发现最佳模型被视为通过模型参数空间的搜索问题。
  • 集成方法:将多个模型所作的预测组合在一起。
  • 极限特征工程(Extreme Feature Engineering):将数据准备中看到的属性分解和聚合推向极限。

你可以在帖子中找到有关此过程的更多信息:

如何提高机器学习效果

展示结果

复杂机器学习问题的结果除非付诸实施,否则毫无意义。这通常意味着向利益相关者进行演示。即使这是一场比赛或我自己解决的问题,我仍然会经历展示结果的过程。这是一次很好的练习,让我学到了清晰的东西,我可以在下一次的基础上再接再厉。

我用来展示结果的模板如下,可以采用文本文档、正式报告或演示幻灯片的形式。

  • 上下文(为什么):定义问题存在的环境,并设置研究问题的动机。
  • 问题(问题):把问题简明扼要地描述为你出去回答的问题。
  • 解决方案(答案):将解决方案简明扼要地描述为你在上一节中提出的问题的答案。具体点。
  • 发现:用项目符号列出你一路上发现的观众感兴趣的东西。它们可能是数据中的发现,可能是有效或无效的方法,也可能是你在旅途中获得的模型性能优势。
  • 限制:考虑模型不起作用的地方或模型没有回答的问题。不要回避这些问题,如果你能定义模型的不足之处,那么定义模型的优势在哪里就更可信了。
  • 结论(为什么+问题+答案):重温“为什么”、研究问题和你发现的答案,放在一个紧凑的小包装里,便于自己和他人记住和重复。

你可以在帖子中找到更多关于使用机器学习项目的结果的信息:

如何使用机器学习结果

摘要

在这篇文章中,你已经学习了我处理机器学习问题的通用模板。

我几乎无懈可击地使用这个过程,我使用它跨平台,例如Weka、R和SCRKIT-Learning,甚至是我一直在使用的新平台,比如pylearn2。

00

机器学习入门

发表评论

邮箱地址不会被公开。 必填项已用*标注

什么阻碍了你实现迈入机器学习领域的目标?

什么阻碍了你实现迈入机器学习领域的目标?

2020-04-22 机器学习

如果你在为进入机器学习领域而挣扎,感觉到有什么东西阻止了自己的开始,那么你应该看看这篇文章。 在这篇文章中,我们会讨论阻止进入机器学习领域的自我限制的信念,让你明白面临的问题。 几乎总是一种自我限制的信念阻碍了你们的进步。 也许你会在一个或多个这样的信念中看到自己。如果是这样的话, [......]

了解详情

R语言机器学习迷你课程

R语言机器学习迷你课程

2020-08-12 机器学习

在这个迷你课程中,你将发现如何开始,构建精确的模型,并自信地完成在14天内使用R预测建模机器学习项目。 这是一个重要而重要的文章。你可能想把它书签。 了解如何准备数据,拟合机器学习模型,并用我的新书评估他们在r上的预测,包括14步教程、3个项目和完整源代码。 我们开始吧。 [......]

了解详情

关于机器学习的几点思考

关于机器学习的几点思考

2020-04-26 机器学习

机器学习是一个大的、跨学科的研究领域。 你可以通过机器学习获得令人印象深刻的结果,并找到非常具有挑战性的问题的解决方案。但这只是更广泛的机器学习领域的一小部分,通常被称为预测建模或预测分析。 在这篇文章中,你将发现如何改变你对机器学习的思考方式,以便更好地为你提供机器学习实践者的服务。 [......]

了解详情

找到你的机器学习部落

找到你的机器学习部落

2020-04-26 机器学习

机器学习是一个充满算法和数据的迷人而强大的研究领域。 问题是,有这么多不同类型的人对机器学习感兴趣,每个人都有不同的需求。重要的是要了解你想要从机器学习中得到什么,并根据这些需求调整你的自学。 如果你不这样做,你很容易就会陷入困境,迷失方向,失去兴趣,得不到你想要的东西。 找到 [......]

了解详情

WEKA机器学习迷你课程

WEKA机器学习迷你课程

2020-04-26 机器学习

机器学习是一项令人着迷的研究,但你如何真正将其用于解决你自己的问题呢? 你可能会困惑于如何最好地为机器学习准备数据,使用哪些算法,或者如何选择一个模型而不是另一个模型。 在这篇文章中,你将发现使用Weka平台学习应用机器学习的14部分速成课程,其中没有任何数学公式或一行编程代码。 [......]

了解详情