ML.NET 教程 - 10 分钟入门

训练模型

现在,将使用 yelp_labelled.txt 数据集来训练模型。

Model Builder 会根据生成性能最佳模型给定的定型时间,评估多个具有不同算法和设置的模型。

  1. 将“训练时间”(即希望 Model Builder 探索各种模型的时间)更改为 60 秒(如果训练后未发现模型,则可以尝试增加此数字)。请注意,对于较大的数据集,训练时间会更长。Model Builder 会根据数据集大小自动调整训练时间。

  2. 可更新高级训练选项中使用的优化指标和算法,但在此示例中不必要。

  3. 选择开始训练以开始训练过程。训练开始后,可以看到剩余时间。

  4. Model Builder 训练

训练结果

完成训练后,你可以查看训练结果摘要。

已完成 Model Builder 训练

  • 最佳 MacroAccuracy - 这将向你展示 Model Builder 找到的最佳模型的准确性。准确性越高意味着模型对于测试数据的预测越正确。
  • 最佳模型 - 这将显示在 Model Builder 探索期间表现最佳的算法。
  • 训练时间 - 显示训练/探索模型所花费的总时间量。
  • 已浏览的模型(总计) - 这将显示 Model Builder 在给定时间内浏览的模型总数。
  • 生成的代码隐藏 - 这显示为帮助使用模型或训练新模型而生成的文件的名称。

如果需要,可以在“机器学习输出”窗口中查看有关定型会话的详细信息。

模型训练完成后,转到评估步骤。

在终端中,运行以下命令(在 myMLApp 文件夹中):

Command prompt
mlnet classification --dataset "yelp_labelled.txt" --label-col 1 --has-header false --name SentimentModel  --train-time 60

这些命令分别代表什么?

mlnet classification 命令使用 AutoML 运行 ML.NET,在给定的训练时间内,通过数据转换、算法和算法选项的不同组合,探索分类模型的多次迭代,然后选择性能最高的模型。

  • --dataset: 你选择了 yelp_labelled.txt 作为数据集(在内部,CLI 会将一个数据集拆分为定型数据集和测试数据集)。
  • --label-col: 必须指定要预测的目标列(或标签)。这种情况下,需要预测第二列中的情绪(零索引列代表这是列 "1")。
  • --has-header: 使用此选项指定数据集是否具有标头。在这种情况下,数据集没有标头,因此它是 false
  • --name: 使用此选项可为机器学习模型和相关资产提供名称。在这种情况下,与此机器学习模型关联的所有资产的名称都具有 SentimentModel
  • --train-time: 还必须指定希望 ML.NET CLI 浏览不同模型的时间量。在这种情况下为 60 秒(如果训练后未找到模型,则可以尝试增加此数字)。请注意,对于较大的数据集,应设置更长的训练时间。

进度

当 ML.NET CLI 探索不同的模型时,将会显示以下数据:

  • 开始训练 - 本部分显示每次模型迭代,包括使用的训练器(算法)和该迭代的评估指标。
  • 剩余时间 - 此项和进度栏将指示训练过程还剩多少时间(以秒为单位)。
  • 最佳算法–这将向你显示到目前为止执行最佳的算法。
  • 最佳分数 - 这将向你展示到目前为止最佳模型的性能。准确度越高意味着模型对测试数据的预测更准确。

如果需要,可以在 CLI 生成的日志文件中查看有关训练会话的详细信息。

继续