通过预测建模问题 的系统过程,提供高于平均水平的结果
随着时间的推移,研究应用机器学习问题,您可以开发一种模式或流程,以快速获得良好的结果。
一旦开发完成,您可以在项目结束后一次又一次地在项目中使用此过程。您的流程越健全,开发越快,您可以更快获得可靠的结果。
在这篇文章中,我想和大家分享我的机器学习问题过程的框架。
您可以将其用作下一个项目的起点或模板。
5步系统过程
我喜欢使用5个步骤:
-
定义问题
-
准备数据
-
抽查检查算法
-
改善结果
-
目前的结果
这个过程中有很大的灵活性。例如,“准备数据”步骤通常分解为分析数据(汇总和图表)和准备数据(为实验准备样本)。“抽查”步骤可能涉及多个正式实验。
这是一条巨大的生产线,我尝试以线性方式穿过。使用自动化工具的好处在于您可以返回几个步骤(例如,从“改进结果”返回到“准备数据”)并插入数据集的新变换,并在干预步骤中重新运行实验以查看内容有趣的结果出来,他们如何比较你之前执行的实验。
我使用的流程已从数据库(或KDD)中的知识发现标准数据挖掘流程进行了调整,请参阅“ 什么是数据挖掘和KDD”以了解更多详细信息。
1.定义问题
我喜欢用三个步骤来定义问题。我喜欢快速行动,我使用这个小型流程非常快速地从几个不同的角度看待问题:
-
第1步:有什么问题?非正式和正式描述问题并列出假设和类似问题。
-
步骤2:为什么需要解决问题?列出解决问题的动机,解决方案提供的好处以及如何使用解决方案。
-
第3步:我将如何解决问题?描述如何手动解决问题以刷新域知识。
您可以在帖子中了解更多关于此过程的信息:
-
如何定义你的机器学习问题
2.准备数据
我在数据分析阶段开始数据准备,包括总结属性并使用散点图和直方图对其进行可视化。我也想详细描述属性之间的每个属性和关系。这种烦人的工作迫使我在问题的上下文中思考数据,然后才会丢失算法
实际的数据准备过程分为三步:
-
步骤1:数据选择:考虑哪些数据可用,缺少哪些数据以及可以删除哪些数据。
-
步骤2:数据预处理:通过格式化,清理和采样来整理选定的数据。
-
步骤3:数据转换:通过使用缩放,属性分解和属性聚合的工程特征来转换预处理的数据以准备机器学习。
您可以通过这篇文章了解更多关于准备数据的流程:
-
如何为机器学习准备数据
3.点检查算法
默认情况下,我在测试线束中使用了10倍交叉验证。所有实验(算法和数据组合)重复10次,收集并报告精度的平均值和标准偏差。我还使用统计显着性检验来清除噪音中的有意义的结果。盒图对于总结每种算法和数据集对的精度结果分布非常有用。
我发现了检查算法,这意味着将一堆标准机器学习算法加载到我的测试工具中并执行正式的实验。我通常在所有已准备的数据集的所有转换和缩放版本中运行来自所有主要算法族的 10-20个标准算法。
斑点检查的目标是清除那些善于挑选问题结构的算法和数据集组合,以便通过集中的实验对它们进行更详细的研究。
在这个步骤中可以执行更加集中的实验以及具有良好性能的算法族,但是算法调整留给下一步。
您可以在帖子中找到更多关于定义测试工具的信息:
-
如何评估机器学习算法
您可以在帖子中发现斑点检查算法的重要性:
-
为什么你应该在你的机器学习问题上进行斑点检查算法
4.改善结果
现场检查后,是时候从钻机中剔除最好的结果。我通过对最高性能算法的参数进行自动灵敏度分析来实现这一点。我还使用顶级执行算法的标准集成方法设计和运行实验。我花了很多时间思考如何从数据集或算法中表现出色的系列中获得更多的信息。
此处,结果的统计显着性至关重要。专注于方法和玩算法配置是非常容易的。如果结果很重要,并且所有配置都已经考虑清楚并且实验分批执行,那么结果才有意义。我也喜欢在一个问题上维护我个人排名最高的结果排行榜。
总之,改进结果的过程包括:
-
算法优化:通过模型参数空间将发现最佳模型视为搜索问题。
-
合奏方法:将由多个模型进行的预测组合在一起。
-
极端特征工程:在数据准备中看到的属性分解和聚合被推到极限。
您可以在帖子中了解更多关于此过程的信息:
-
如何提高机器学习结果
5.目前的结果
一个复杂的机器学习问题的结果是没有意义的,除非它们被投入使用。这通常意味着向利益相关者介绍。即使这是我为自己工作的竞赛或问题,我仍然会经历呈现结果的过程。这是一个良好的做法,并给我明确的学习,我可以在下一次建立。
我用来呈现结果的模板如下,可能采取文本文档,正式报告或演示幻灯片的形式。
-
上下文(为什么):定义存在问题的环境并为研究问题设定动机。
-
问题(问题):简要地将问题描述为你出去回答的问题。
-
解决方案(答案):简要地将解决方案描述为您在前一节中提出的问题的答案。请明确点。
-
调查结果:沿着感兴趣观众的方式制作的发现列表。他们可能是数据中的发现,有或没有工作的方法,或者您在旅途中获得的模型性能优势。
-
局限性:考虑模型不起作用的地方或模型没有回答的问题。不要回避这些问题,如果可以定义模型擅长的地方,那么定义模型擅长的地方更值得信赖。
-
结论(为什么+问题+答案):重新审视“为什么”,研究问题和你在一个小小的包装中发现的答案,这个包装很容易记住,并为自己和他人重复。
阅读上一篇文章:机器学习是什么?浅谈我对机器学习的认识。
翻译:天才写手
Ref:https://machinelearningmastery.com/process-for-working-through-machine-learning-problems/