GitHub:您所需的最佳 AutoML
最后更新于
这有帮助吗?
最后更新于
这有帮助吗?
您可能想知道 GitHub 是从何时开始涉足自动化机器学习业务的。嗯,它并没有,但你可以用它来测试你个性化的 AutoML 软件。在本教程中,我们将向您展示如何构建自己的自动化机器学习软件并将其容器化,然后使用 Docker 容器在 GitHub 上进行测试。
了解什么是自动化机器学习以及如何使用 PyCaret 2.0 构建简单的 AutoML 软件。
了解什么是容器以及如何将你的 AutoML 解决方案部署为 Docker 容器。
什么是 GitHub Actions 以及如何使用它们来测试你的 AutoML。
自动化机器学习(AutoML)是自动化机器学习中耗时、迭代任务的过程。它使数据科学家和分析师能够高效地构建机器学习模型,同时保持模型质量。任何 AutoML 软件的最终目标是根据某些性能标准确定最佳模型。
传统的机器学习模型开发过程资源密集,需要大量的领域知识和时间来生成和比较数十个模型。通过自动化机器学习,您可以非常轻松高效地加快开发生产就绪型 ML 模型所需的时间。
市面上有许多 AutoML 软件,包括付费的和开源的。几乎所有这些软件都使用相同的转换和基础算法集合。因此,在此类软件下训练的模型质量和性能大致相同。
付费的 AutoML 即服务软件非常昂贵,如果你的手头没有大量用例,则在财务上不可行。托管的机器学习即服务平台相对便宜一些,但它们通常难以使用,并且需要了解特定平台。
在众多其他开源 AutoML 库中,PyCaret 是一个相对较新的库,它采用独特的低代码机器学习方法。PyCaret 的设计和功能简单、人性化且直观。在短时间内,PyCaret 被全球超过 100,000 名数据科学家采用,我们是一个不断壮大的开发者社区。
PyCaret 是一个用于监督和无监督机器学习的工作流自动化工具。它被组织成六个模块,每个模块都有一组可用的函数来执行特定操作。每个函数接受输入并返回输出,在大多数情况下,输出是经过训练的机器学习模型。截至第二个版本,可用的模块有
PyCaret 中的所有模块都支持数据准备(超过 25 种基本预处理技术,包含大量未经训练的模型并支持自定义模型)、自动超参数调优、模型分析和可解释性、自动模型选择、实验日志记录以及便捷的云部署选项。
在开始构建 AutoML 软件之前,让我们了解以下术语。此时,你只需要对本教程中使用的这些工具/术语有一些基本的理论知识。如果你想了解更多细节,本教程末尾提供了链接供你稍后探索。
容器提供了一个可移植且一致的环境,可以在不同环境中快速部署,以最大限度地提高机器学习应用程序的准确性、性能和效率。环境包含运行时语言(例如 Python)、所有库以及应用程序的依赖项。
GitHub Actions 帮助你在存储代码并协作处理拉取请求和问题的同一位置自动化软件开发工作流。你可以编写称为“action”的单个任务,并将它们组合起来创建自定义工作流。工作流是你可以在仓库中设置的自定义自动化流程,用于在 GitHub 上构建、测试、打包、发布或部署任何代码项目。
训练并选择基于数据集中其他变量(即年龄、性别、BMI、子女数量、吸烟状况和地区)预测患者费用的最佳回归模型。
这是 AutoML 的主要文件,也是 Dockerfile 的入口点(见下文步骤 2)。如果你之前使用过 PyCaret,那么这段代码对你来说应该是不言自明的。
前五行是关于从环境中导入库和变量。接下来的三行是将数据读取为 pandas 数据帧。第 12 行到第 15 行是根据环境变量导入相关模块,从第 17 行开始是关于 PyCaret 初始化环境、比较基础模型以及将表现最佳的模型保存到你的设备上的函数。最后一行将实验日志下载为 csv 文件。
Dockerfile 只是一个包含几行指令的文件,保存在你的项目文件夹中,名称为“Dockerfile”(区分大小写,无扩展名)。
另一种理解 Dockerfile 的方式是,它就像你在自己的厨房里发明的食谱。当你与他人分享这样的食谱时,如果他们完全按照食谱中的说明操作,他们就能做出同样质量的菜肴。同样,你可以与他人分享你的 Dockerfile,他们就可以基于该 Dockerfile 创建镜像并运行容器。
这个项目的 Dockerfile 很简单,只有 6 行。见下文
Dockerfile 的第一行导入 python:3.7-slim 镜像。接下来的四行创建一个 app 文件夹,更新 **libgomp1 **库,并安装 **requirements.txt **文件中的所有依赖项,在此示例中只需要 PyCaret。最后,最后两行定义了应用程序的入口点;这意味着当容器启动时,它将执行我们在上面步骤 1 中看到的 app.py 文件。
Docker Action 需要一个元数据文件。元数据文件名必须是 action.yml 或 action.yaml。元数据文件中的数据定义了你的 Action 的输入、输出和主要入口点。Action 文件使用 YAML 语法。
环境变量 dataset、target 和 usecase 分别在第 6、9 和 14 行声明。参见 app.py 的第 4-6 行,了解我们如何在 app.py 文件中使用这些环境变量。
此时,你的项目文件夹应该看起来像这样
点击“Releases”
起草新版本
填写详细信息(标签、版本标题和描述),然后点击“Publish release”
发布后,点击该版本,然后点击“Marketplace”
点击“Use latest version”
保存此信息,这是你的软件的安装详细信息。这是你需要在任何公共 GitHub 仓库中安装此软件所需的。
要安装我们在上一步中发布的软件,点击“Actions”
点击“set up a workflow yourself”(自行设置工作流),并将此脚本复制到编辑器中,然后点击“Start commit”。
提交后,点击“actions”
在这里,你可以在构建过程中监控构建日志,工作流完成后,你也可以从这里收集你的文件。
你可以下载文件并在你的设备上解压。
这是一个 .csv 文件,包含你的模型所需的所有详细信息。它包含在 app.py 脚本中训练的所有模型、它们的性能指标、超参数和其他重要的元数据。
这是 PyCaret 生成的系统日志文件。它可用于审计过程。它包含重要的元数据信息,对于排除软件中的错误非常有用。
加密货币挖矿;
无服务器计算;
为商业目的提供独立或集成应用程序或服务,或提供 Actions 的任何元素;或者,
与使用 GitHub Actions 的仓库关联的软件项目的生产、测试、部署或发布无关的任何其他活动。
为了防止违反这些限制和滥用 GitHub Actions,GitHub 可能会监控你对 GitHub Actions 的使用。滥用 GitHub Actions 可能会导致作业终止,或限制你使用 GitHub Actions 的能力。
使用这个轻量级的 Python 工作流自动化库,你可以实现无限可能。如果你觉得这很有用,请不要忘记在我们的 GitHub 仓库上给我们 ⭐️。
点击以下链接查看文档和工作示例。
我们将使用 PyCaret 2.0,一个用 Python 编写的开源、低代码机器学习库,来开发一个简单的 AutoML 解决方案,并使用 GitHub Actions 将其部署为 Docker 容器。如果你之前没有听说过 PyCaret,可以阅读 PyCaret 2.0 的官方发布公告或查看详细的发布说明.
要了解更多关于 PyCaret 的信息,阅读我们的官方发布公告。
如果你想开始使用 Python,查看示例笔记本集以开始使用。
Docker 是一家提供软件(也称为 Docker)的公司,允许用户构建、运行和管理容器。虽然 Docker 容器是最常见的,但还有其他不太出名的替代品,例如以及也提供容器解决方案。
是一个基于云的服务,用于托管、管理和控制代码。想象一下,你正在一个大型团队中工作,多人(有时达数百人)在同一代码库上进行更改。PyCaret 本身就是一个开源项目的例子,其中数百名社区开发者正在持续为源代码做贡献。如果你之前没有使用过 GitHub,可以申请免费账户。
为了安装和测试我们刚刚创建的软件,我们创建了一个新的仓库**并上传了一些用于分类和回归的示例数据集。**
这是一个供 GitHub 执行的指令文件。第一个 action 从第 9 行开始。第 9 到 15 行是一个 action,用于安装和执行我们之前开发的软件。第 11 行是我们引用软件名称的地方(参见上面步骤 4 的最后部分)。第 13 到 15 行是定义环境变量的 action,例如数据集的名称(csv 文件必须上传到仓库中)、目标变量的名称以及用例类型。从第 16 行开始是来自另一个 action上传三个文件:model.pkl、csv 格式的实验日志以及 .log 格式的系统日志。
这是包含整个转换管道的最终模型的 .pkl 文件。你可以使用此文件通过 predict_model 函数在新数据集上生成预测。要了解更多信息,.
GitHub Actions 使你能够直接在你的 GitHub 仓库中创建自定义软件开发生命周期工作流。每个账户根据你的账户计划,都包含可用于 Actions 的计算和存储量,具体信息可在以下链接中找到:.
Actions 和 Action 服务的任何元素不得违反协议、或 GitHub Actions。此外,Actions 不应用于
使用我们的服务器扰乱或试图未经授权访问任何服务、设备、数据、账户或网络(经授权者除外))
要了解更多关于 PyCaret 的信息,请关注我们:以及.
如果你想了解更多关于 PyCaret 2.0 的信息,请阅读此。如果你之前使用过 PyCaret,你可能会对以下内容感兴趣:查看当前版本。