练习:训练机器学习模型

已完成

你从制造设备中收集了正常设备和故障设备的传感器数据。 现在,你想使用 Model Builder 来训练机器学习模型,用于预测机器是否会出现故障。 通过使用机器学习来自动监视这些设备,你可以提供更及时和更可靠的维护,这样可以节省公司的资金。

添加新的机器学习模型 (ML.NET) 项

若要开始训练过程,需要向新的或现有的 .NET 应用程序添加新的机器学习模型 (ML.NET) 项。

创建 C# 类库

由于你是从头开始,因此请创建一个新的 C# 类库项目,你将在其中添加机器学习模型。

  1. 启动 Visual Studio。

  2. 在“开始”窗口中,选择“创建新项目”。

  3. 在“创建新项目”对话框的搜索栏中键入“类库”

  4. 在选项列表中,选择“类库”。 确保语言为 C#,然后选择“下一步”

    Screenshot that shows selections for creating a class library project.

  5. 在“项目名称”文本框中,输入“PredictiveMaintenance”。 保留所有其他字段的默认值,然后选择“下一步”

  6. 从“框架”下拉列表中选择“.NET 6.0 (预览版)”,然后选择“创建”以搭建 C# 类库的基架

将机器学习添加到项目中

类库项目在 Visual Studio 中打开后,可以将机器学习模型添加到项目中。

  1. 在 Visual Studio 解决方案资源管理器中,右键单击项目。

  2. 选择“添加”>“机器学习模型”

    Screenshot that shows selections for adding a machine learning model to a project.

  3. 在“添加新项”对话框的新项列表中,选择“机器学习模型 (ML.NET)”

  4. 在“名称”文本框中,使用“PredictiveMaintenanceModel.mbconfig”作为模型的名称,然后选择“添加”

    Screenshot that shows selections for creating a model.

几秒钟后,系统会将名为 PredictiveMaintenanceModel.mbconfig 的文件到项目中

选择场景

第一次将机器学习模型添加到项目时,将打开 Model Builder 屏幕。 现在可以选择场景。

你的用例是尝试确定机器是否损坏。 由于只存在两种选项,而你要确定机器的状态,因此数据分类场景最合适。

在 Model Builder 屏幕的“场景”步骤中,选择“数据分类”场景。 选择此场景后,将立即进入“环境”步骤。

Screenshot that shows selections for choosing the data classification scenario.

选择环境

对于数据分类场景,仅支持使用 CPU 的本地环境。

  1. 在 Model Builder 屏幕的“环境”步骤中,默认选择“本地(CPU)”。 保留默认选择的环境。
  2. 选择下一步

Screenshot that shows selections for choosing a local compute training environment.

加载和准备数据

选择场景和训练环境后,便可以加载和准备使用 Model Builder 收集的数据。

准备数据

  1. 在选择的文本编辑器中打开文件。

  2. 原始列名包含特殊括号字符。 若要防止分析数据时出现问题,请从列名中删除特殊字符。

    原始标题:

    UDI,Product ID,Type,Air temperature [K],Process temperature [K],Rotational speed [rpm],Torque [Nm],Tool wear [min],Machine failure,TWF,HDF,PWF,OSF,RNF

    更新的标题:

    UDI,Product ID,Type,Air temperature,Process temperature,Rotational speed,Torque,Tool wear,Machine failure,TWF,HDF,PWF,OSF,RNF

  3. 保存更改后的 ai4i2020.csv 文件

选择数据源类型

预测性维护数据集是 CSV 文件。

在 Model Builder 屏幕的“数据”步骤中,在“数据源类型”处选择“文件(csv、tsv、txt)”

提供数据的位置

选择“浏览”按钮,并使用文件资源管理器提供 ai4i2020.csv 数据集的位置

选择标签列

从“要预测的列(标签)”下拉列表中选择“计算机故障”

Screenshot that shows loading a predictive maintenance C S V file dataset.

选择高级数据选项

默认情况下,所有不是标签的列都用作特征。 某些列包含冗余信息,而其他列不提供预测的信息。 使用高级数据选项可忽略这些列。

  1. 选择“高级数据选项”

  2. 在“高级数据选项”对话框中,选择“列设置”选项卡

    Screenshot that shows configuring advanced data options for the predictive maintenance dataset.

  3. 按如下所示配置列设置:

    列数 目的 数据类型 分类
    UDI 忽略 Single
    产品 ID 功能 字符串
    类型 功能 字符串 X
    Air temperature 功能 Single
    Process temperature 功能 Single
    Rotational speed 功能 Single
    转矩 功能 Single
    Tool wear 功能 Single
    Machine failure 标签 Single X
    TWF 忽略 Single X
    HDF 忽略 Single X
    PWF 忽略 Single X
    OSF 忽略 Single X
    RNF 忽略 Single X
  4. 选择“保存”。

  5. 在 Model Builder 屏幕的“数据”步骤中,选择“下一步”

训练模型

使用 Model Builder 和 AutoML 训练模型。

设置训练时间

Model Builder 根据文件大小自动设置训练时长。 在这种情况下,为帮助 Model Builder 浏览更多模型,请为训练时间提供更大的数字。

  1. 在 Model Builder 屏幕的“训练”步骤中,将“训练时间(秒)”设置为 30
  2. 选择“训练”。

跟踪训练过程

Screenshot that shows where to track training of the predictive maintenance classification model.

训练过程开始后,Model Builder 将浏览各种模型。 系统会在训练结果和 Visual Studio 输出窗口中跟踪训练过程。 训练结果提供有关在整个训练过程中找到的最佳模型的信息。 输出窗口提供详细信息,例如所用算法的名称、训练花费的时间以及该模型的性能指标。

同一算法名称可能会多次显示。 出现这种情况是因为 Model Builder 除了尝试不同的算法之外,还为这些算法尝试不同的超参数配置。

评估模型

使用评估指标和数据来测试模型的性能。

检查模型

在 Model Builder 屏幕的“评估”步骤中,你可以检查为最佳模型选择的评估指标和算法。 请记住,如果结果不同于本模块中提到的结果也没关系,因为选择的算法和超参数可能不同。

测试模型

在“评估”步骤的“尝试模型”部分中,可以提供新数据并评估预测结果

Screenshot that shows making predictions with your trained model.

在“示例数据”部分,你可以为模型提供输入数据进行预测。 每个字段对应于用于训练模型的列。 这是验证模型行为是否符合预期的简便方法。 默认情况下,Model Builder 使用数据集中的第一行预填充示例数据。

接下来测试模型,看是否能生成预期结果。

  1. 在“示例数据”部分中,输入以下数据。 这些数据源自数据集中 UID 为 161 的行。

    产品 ID L47340
    类型 L
    Air temperature 298.4
    Process temperature 308.2
    Rotational speed 1282
    转矩 60.7
    Tool wear 216
  2. 选择“预测”。

评估预测结果

“结果”部分显示模型进行的预测以及该预测的置信度。

如果查看数据集中 UID 161 的“Machine failure”列,你会注意到值为 1。 这与“结果”部分中置信度最高的预测值相同。

如果需要,可以继续使用不同的输入值来尝试模型,并评估预测。

祝贺你! 你训练出一个用来预测机器故障的模型。 下一单元将介绍模型使用。