使用 ML.NET CLI 自动训练模型

ML.NET CLI 自动为 .NET 开发人员生成模型。

若要单独使用 ML.NET API(无需 ML.NET AutoML CLI),需要选择训练器(针对特定任务的机器学习算法实现),以及应用于数据的数据转换(特征工程)集。 每个数据集的最佳管道将有所不同,并从所有选项中选择最佳算法会增加复杂性。 更进一步,每个算法都有一组要优化的超参数。 因此,你可以花费数周和有时几个月的时间进行机器学习模型优化,试图找到特征工程、学习算法和超参数的最佳组合。

ML.NET CLI 使用自动化机器学习(AutoML)简化了此过程。

注意

本文介绍 ML.NET CLI 和 ML.NET AutoML,目前处于预览状态,材料可能会更改。

什么是 ML.NET 命令行接口(CLI)?

ML.NET CLI 是 .NET 工具。 安装后,可以为其提供机器学习任务和训练数据集,并生成 ML.NET 模型,以及运行 C# 代码以在应用程序中使用该模型。

如下图所示,生成高质量的 ML.NET 模型(序列化模型 .zip 文件)以及示例 C# 代码来运行/评分该模型非常简单。 此外,还生成用于创建/训练该模型的 C# 代码,以便你可以研究并循环访问用于生成“最佳模型”的算法和设置。

在 ML.NET CLI 中工作的 AutoML 引擎

你可以从自己的数据集生成这些资产,而无需自行编码,因此即使你已经知道 ML.NET,它也提高了工作效率。

目前,ML.NET CLI 支持的 ML 任务包括:

  • 分类
  • 回归
  • 建议
  • 图像分类
  • 预测
  • 火车

可以使用以下命令根据操作系统及其体系结构安装 ML.NET CLI:

dotnet tool install --global mlnet-<OS>-<ARCH>

例如,可以使用以下命令安装 x64 版本的 Windows:

dotnet tool install --global mlnet-win-x64

有关详细信息,请参阅 安装 ML.NET CLI 操作指南。

用法示例(分类方案):

mlnet classification --dataset "yelp_labelled.txt" --label-col 1 --has-header false --train-time 10

还有一个命令,你可以使用 mbconfig 文件进行训练。 启动模型生成器会话时,会创建 mbconfig 文件。

从命令行执行 ML.NET 分类

可以在 Windows PowerShellmacOS/Linux bashWindows CMD上以相同的方式运行它。 但是,表格自动完成(参数建议)不适用于 Windows CMD

生成的输出资产

CLI 中的 ML 任务命令在输出文件夹中生成以下资产:

  • C# 解决方案,其中包含:
    • 一个控制台应用,用于运行/评分生成的模型(使用该模型在最终用户应用中进行预测)。
    • 包含用于生成该模型的训练代码的控制台应用(用于学习目的或模型重新训练)。
      • 此序列化模型(“最佳模型”)也作为压缩 .zip 文件提供,该文件可用于运行预测。
      • mbconfig 文件,其中包含允许在模型生成器中打开模型的配置数据。
  • 日志文件,包含有关评估的多种算法的所有迭代/扫描的信息(包括其详细配置/管道)。

前两个资产可以直接用于最终用户应用(例如,ASP.NET Core Web 应用、服务和桌面应用),以便使用该生成的 ML 模型进行预测。

第三种资产,训练代码,展示了 CLI 使用了哪些 ML.NET API 代码来训练生成的模型,因此你可以重新训练模型,并进一步研究和优化 CLI 和 AutoML 在背后选择的特定训练器/算法和超参数。

了解模型的质量

使用 CLI 工具生成“最佳模型”时,你会看到适合你目标的 ML 任务的质量指标(例如准确性和 R-Squared)。

下面汇总了这些指标,这些指标按 ML 任务分组,以便你可以了解自动生成的“最佳模型”的质量。

分类模型的指标

下图显示了 CLI 找到的前五个模型的分类指标列表:

前五个模型的 分类指标

准确性是分类问题的常用指标,但准确性并不总是选择最佳模型的最佳指标,如以下参考中所述。 在某些情况下,需要使用其他指标评估模型的质量。

要探索和理解由 CLI 输出的指标,请参阅 分类的评估指标

回归和建议模型的指标

如果观察到的值与模型的预测值之间的差异较小且无偏差,则回归模型适合数据。 可以使用某些指标评估回归。

你将看到一个类似的列表,其中包含 CLI 找到的排名前五的质量模型的指标,但在这种情况下,排名前五的模型与回归 ML 任务相关:

前五个模型的回归指标

为了探索和理解 CLI 输出的指标,请参阅 回归的评估指标

另请参阅