一个机器学习项目的因素很多,包括数据处理、模型优化等等。开发人员经常感到困惑,或者错过一些重要的事情。这是一份清单,检查一下。任何科研项目都是系统性的,机器学习项目也不例外。它包括讨论、准备、提问、模型构建、优化调整等一系列或大或小、或复杂或简单的要素和组成部分。在这种情况下,开发人员很容易错过一些重要的东西。这时,有必要对项目中涉及的任务做一个详尽的清单。有时开发人员很难找到一个好的起点,待办事项列表可以帮助他们提取有用的数据并在正确的信息源中建立联系以发现见解。此外,还要检查项目中每项任务的计划,确保任务的完成。正如AtulGawande在他的书《清单宣言:如何把事情做对》(ChecklistManifesto)中所说:我们所知道的事物的数量和复杂性已经超出了我们正确、安全或可靠地从中受益的能力。在本文中,网络和数据科学讲师HarshitTyagi使用一个端到端机器学习项目示例来提供经常涉及的任务的清单。本文由HarshitTyagi撰写。接下来,我们就来看看HarshitTyagi是如何一步步创建自己的机器学习项目任务清单的。完成ML项目清单的八个步骤几乎每个机器学习项目都至少有8-10个步骤,其中一些可以按可互换的顺序执行。第一步:从高层次的角度定义问题这一步是为了理清问题的业务逻辑。你应该明白:问题的本质(有监督/无监督,分类问题/回归问题)。您可以开发的场景类型。应该使用什么指标来衡量绩效?机器学习是解决这个问题的正确方法吗?解决此问题的手动方法。问题中固有的假设。第二步:确定数据源并获取数据大多数情况下,如果您已经准备了一些数据,并且想定义关于这些数据的问题,以便更好地利用输入数据,则可以在第一步之前执行此步骤。根据问题的定义,您需要确定哪些数据源可以用作数据库或传感器等。对于在生产中部署应用程序,应通过开发数据管道来自动化此步骤,以确保输入数据即可进入系统。具体步骤如下:列出数据来源和你需要的数据量;检查存储空间是否会成为问题;检查您是否有权使用数据来实现您的目的;获取数据并将其转换为可用格式;数据类型,通常是文本、分类、数字、时间序列、图像数据;保留样品进行最终测试。第3步:初步探索数据在这一步中,您需要对影响项目结果/预测/目标的所有特征进行研究。如果数据量很大,对数据进行采样可以使分析更易于管理。具体步骤如下:使用jupyternotebook,因为它提供了一个简单直观的界面来研究数据;确定目标变量;确定特征的类型(分类、数字、文本等);分析特征之间的关系;每个特征对目标变量的影响更容易解释;记录你的发现。第4步:探索性数据分析以准备数据在此步骤中,通过定义数据转换、数据清理、特征选择/工程和扩展的函数来解决前面步骤的发现。具体如下:编写数据转换函数,自动处理下一批将要输入的数据;编写数据清理函数(估算缺失值并处理异常值);编写函数来选择和设计特征,包括删除冗余特征、特征格式化和其他数学变换;功能扩展——标准化功能。第5步:开发基线模型,然后探索其他模型以选择最佳模型创建一个可以为所有其他复杂机器学习模型提供基线的基础模型。具体步骤如下:使用默认参数训练一些常用的机器学习模型,如朴素贝叶斯、线性回归、支持向量机(SVM)等;测量和比较每个模型的性能;对每个模型使用N次交叉验证,并在N次的基础上计算性能指标的均值和标准差;研究对目标影响最大的特征;分析模型在预测过程中的错误类型;以不同的方式设计特征;多次重复上述步骤以确保您使用了正确的功能并且它们的形式正确;根据性能指标选择最佳模型。第6步:优化您选择的模型并检查相关方法。这是让您更接近最终解决方案的关键步骤之一。具体步骤如下:通过交叉验证优化超参数;使用随机搜索或网格搜索等自动调整方法找到最佳模型的最佳配置;测试相关方法,如集成学习等;用尽可能多的数据测试模型;finalize之后,使用一开始保留的unseentestexamples来检查模型是否存在overfittingfit或者underfitting。第七步:保存代码并交流你的解决方案交流的过程也是性能翻倍的过程。您需要牢记所有现有或潜在的利益相关者。主要步骤包括:保存代码并记录整个项目的过程和使用的方法;创建一个仪表板,例如voila或具有近乎自我解释的可视化效果的有效演示;写一篇描述你如何进行特征分析、测试数据转换等的文章/报告。记录你的学习过程,包括失败和有效的技术方法;总结关键结果并计划未来情景(如果有)。第8步:将模型投入生产并监控模型如果您的项目需要对实时数据进行测试,您应该创建一个可以在所有平台(Web、Android、iOS)上使用的Web应用程序或RESTAPI。主要步骤包括:将最终的训练模型保存在h5或pickle文件中;提供网页版模型应用,可以使用Flask开发这些网页服务;关联输入数据源并设置ETL路径;根据扩展需求,使用pipenv、docker/Kubernetes管理依赖;您可以使用Amazon、Azure或GoogleCloudPlatform来部署您的服务;监控实时数据的性能或使人们可以轻松地在您的模型上使用他们的数据。最后,创建待办事项列表时要记住一件事:您可以根据项目的难度对列表进行实时调整。
