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

机器学习项目的完整构建过程和任务清单被曝光,值得收藏

时间:2023-03-17 11:12:56 科技观察

对于创建机器学习项目,大多数人的印象是数据、建模、测试等,但具体的项目和要经过的步骤估计99%%的人都不知道,今天的内容将告诉大家机器学习项目中必须要做的几件事。为了让我们的工作进行得更加顺利,工作计划、工作流程、任务清单等都是我们的辅助工具。没有这些,我们的工作就难以推进。机器学习也是如此。任何机器学习项目都离不开任务清单,让大家知道该做什么,什么时候完成。我们需要处理项目中的很多事情(比如准备工作、可能出现的问题、模型创建、模型微调等)。在本文中,我列出了几个步骤,可以帮助您完成机器学习项目并检查每个任务是否已成功执行。正如AtulGawand在他的书《清单宣言》中所说,我们所知道的数量和复杂性已经超出了我们个人正确、安全或可靠地提供其利益的能力。以下简明的项目行动待办事项列表将减少您的工作量并增加您的产出。在每个ML项目中,我们都会经历8-10个步骤。其中一些步骤可以按顺序交替执行。1.从高层次的角度定义问题。这是为了理解和理清问题的业务逻辑。它应该告诉您:问题的性质(监督/非监督,分类/回归)可以开发的解决方案的类型应该使用什么指标来衡量性能?机器学习是解决这个问题的正确方法吗?手动解题法问题的固有假设2.识别数据源,获取数据在这一步,我们可以先用这一步来定义问题。根据问题定义,我们需要确定数据源,可以是数据库、数据存储库、审查流程等。对于要部署在生产环境中的应用程序,应通过开发数据管道来自动执行此步骤以保持流入系统的输入数据。列出所需数据的来源和数量。检查空间是否会成为问题。检查您是否有权将数据用于个人目的。获取数据并将其转换为可操作的格式。检查数据类型(文本、分类、数字、时间序列、图像)取样进行最终测试。3.初步探索数据这是您调查影响结果/预测/目标的所有特征的步骤。如果您有一个大型数据库,在此步骤中对其进行采样可以使分析更易于管理。遵循的步骤:使用jupyter笔记本,因为它们提供了一个简单直观的界面来探索数据。确定目标变量识别特征类型(分类、数字、文本等)分析特征之间的相关性。添加一些数据可视化,以便更容易解释每个特征对目标变量的影响。记录发现。4.探索性数据分析以准备数据接下来,我们将通过定义数据转换、清洗、特征选择/工程和缩放功能来执行上一步的发现。编写函数来转换数据并自动执行即将到来的数据批处理。Writefunctionstocleandata(inputmissingvaluesandhandleoutliers)Writefunctionstoselectanddesignfeatures-去除冗余特征,特征格式转换,以及其他数学变换。特征缩放-标准化函数。5.开发基线模型,然后探索其他模型以筛选出最佳模型创建一个非常基本的模型,作为其他复杂机器学习模型的基线。主要步骤包括:使用默认参数训练一些常用的机器学习模型,如naivebayes、线性回归、SVM等。测量和比较每个模型与基线和所有其他模型的性能。对每个模型应用N折交叉验证,并计算N折上性能指标的均值和标准差。调查对您的目标影响最大的功能。在预测错误的同时分析模型的类型。设计功能不同。重复上述步骤几次(反复试验)以确保我们以正确的格式使用正确的函数。根据模型的性能,筛选出最优模型。6.微调所选模型并检查整体方法这将是我们接近最终解决方案的关键步骤之一。主要步骤应包括:使用交叉验证调整超参数。使用自动调整方法(例如随机搜索或网格搜索)为我们的最佳模型找到最佳配置。测试集成方法,例如投票分类器等。在尽可能多的数据上测试模型。完成后,使用我们在开始时保留的看不见的测试样本检查过度拟合或欠拟合。7.记录代码并交流你的解决方案交流的过程是多方面的。我们需要牢记所有现有和潜在的利益相关者。因此,主要步骤包括:记录代码以及整个项目的方法和过程。使用不言自明的可视化创建仪表板、瞧或演示文稿。撰写博客/报告,记录您如何分析功能、测试不同的转换等。记录你的学习成功(失败的方法和有效的技巧)总结主要成果和未来的应用范围(如果有的话)8.在开发环境中部署监控模型——Monitor!如果您的项目需要在实时数据上进行测试和部署,您应该创建一个Web应用程序或RESTAPI以在所有平台(Web、Android、iOS)上使用。主要步骤(因项目而异)包括:将最终训练好的模型保存到h5或pickle文件中。使用可以使用Flask开发的Web服务为您的模型提供服务。连接输入数据源并设置ETL管道。使用Pipenv、Docker/Kubernetes管理依赖项(基于扩展要求)您可以使用AWS、Azure或GoogleCloudPlatform部署服务。监控实时数据的性能,或者只是让您的模型和数据可供人们使用。注:清单可根据项目的复杂程度进行调整。