当前位置: 首页 > 科技观察

机器学习项目必备:端到端机器学习项目开发过程的任务表

时间:2023-03-18 13:48:35 科技观察

在创建有意义的项目时,我记录了我从别人那里学到的一切以及我自己的工作。这对我来说是必须的,因为在一个项目中处理这么多事情(争论、准备、问题、模型、微调等)很容易忘记事情。任务列表指导开发人员完成下一步,提示您检查每个任务是否已成功执行。有时,很难找到起点,任务表也可以帮助开发人员从正确的来源获取正确的信息(数据),以建立关系并揭示相关见解。最好检查项目的每个部分。正如AtulGawande在他的《清单革命》(清单宣言)中所说:“我们所知道的事物的数量和复杂性已经超出了我们正确、安全和可靠地传达其优点的能力。”那么,看看这份简明的项目任务清单,它会帮你减少工作量,增加产出!MachineLearningProjectChecklist几乎每个机器学习项目都有8-10个步骤必须执行,其中一些步骤可以按顺序交替执行。1.从高层次的角度定义问题为了理解和理清问题的业务逻辑,任务表应该告知:问题的性质(有监督/无监督,分类/回归)。可以开发的解决方案类型。应该使用什么指标来衡量绩效?机器学习是解决这个问题的正确方法吗?人是要走的路。问题的固有假设。2.确定数据源并获取数据在大多数情况下,如果您拥有数据并希望定义相关问题以更好地利用传入数据,则可以在第一步之前执行此步骤。根据问题的定义,我们需要确定数据的来源,可以是数据库、数据存储库、传感器等。对于要部署在生产中的应用程序,这一步需要通过开发数据管道来自动化以保持传入数据流入系统。列出所需数据的来源和数量。检查空间是否会成为问题。检查您是否有权使用数据。获取数据并将其转换为可行的格式。检查数据类型(文本、分类、数字、时间序列、图像)。取样进行最终测试。资料来源:unsplash3。初始数据探索在这一步中,将发现所有对研究结果、预测和目标有影响的数据特征。如果您有大量数据,在此步骤中对其进行采样会使分析更易于管理。应遵循以下步骤:使用jupyter笔记本,因为它们提供了一个简单直观的界面来研究数据。确定目标变量。识别特征类型(分类、数字、文本等)。分析特征之间的相关性。添加一些数据可视化,以便更容易解释每个特征对目标变量的影响。记录发现。4.探索性数据分析准备数据现在是时候通过定义数据转换、清理、特征选择/设计和缩放的函数来执行上一步的发现了。编写函数来转换数据,自动处理大量数据。编写函数来清理数据(输入缺失值和处理异常值)。编写函数来选择和设计特征——删除冗余特征、格式化特征和其他数学变换。特征缩放-规范化特征。图源:unsplash5。开发基线模型并探索其他模型以筛选最佳模型创建一个非常基本的模型,作为所有其他复杂机器学习模型的基线。按照以下步骤进行:使用默认参数训练一些常用的机器学习模型,如朴素贝叶斯、线性回归、支持向量机(SVM)等。使用基线和其他模型,测量和比较每个模型的性能.为每个模型部署N折交叉验证,并计算N折上性能指标的均值和标准差。调查对您的目标影响最大的功能。分析您的模型在进行预测时所犯的错误类型。设计特点不同。多次重复上述步骤(反复试验)以确保您以正确的格式使用正确的功能。根据性能指标列出最佳模型。6.Fine-tunetheshortlistedmodelandchecktheensemblemethod这是接近最终解决方案的关键步骤之一。主要步骤应包括:使用交叉验证调整超参数。使用自动调整方法,例如随机搜索或网格搜索,为最佳模型找到最佳配置。测试集成方法,例如投票分类器等。在尽可能多的数据上测试模型。完成后,使用您在开始时放置的测试样本检查是否过拟合或欠拟合。7.记录代码并交流解决方案交流过程是多方面的,要牢记所有现有和潜在的利益相关者。主要步骤包括:记录整个项目的代码和完成方法、过程。使用近乎不言自明的可视化创建简洁的仪表板或富有洞察力的演示文稿。撰写博客/报告,记录如何分析特征、测试不同的转换等,记录学习(失败和有效的技术)。总结主要成就和未来路线图(如果有)。8.在生产中部署模型和监视器如果项目需要在实时数据上测试部署,则应创建一个Web应用程序或RESTAPI以在所有平台(Web、Android、iOS)上使用。主要步骤(因项目而异)包括:将最终训练好的模型保存到h5或pickle文件中。使用可以使用Flask开发的Web服务为模型提供服务。连接输入数据源并设置ETL管道。使用pipenv、docker/Kubernetes管理依赖项(基于扩展需求)。可以使用AWS、Azure或谷歌云平台部署服务。监控实时数据的性能,或让人们将您的模型与他们的数据一起使用。图片来源:unsplash不要照本宣科,你的清单可以根据项目的复杂程度进行调整。基于此,一个完美的机器学习项目正在向你招手。