练习:训练机器学习模型

已完成

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

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

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

创建 C# 类库

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

  1. 启动 Visual Studio。

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

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

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

    显示用于创建类库项目的选项的屏幕截图。

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

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

将机器学习添加到项目中

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

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

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

    显示用于将机器学习模型添加到项目的选项的屏幕截图。

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

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

    显示用于创建模型的选项的屏幕截图。

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

选择场景

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

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

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

显示用于选择数据分类场景的选项的屏幕截图。

选择环境

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

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

显示用于选择本地计算训练环境的选项的屏幕截图。

加载和准备数据

选择场景和训练环境后,便可以加载和准备使用 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 数据集的位置

选择标签列

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

显示加载预测性维护 CSV 文件数据集的屏幕截图。

选择高级数据选项

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

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

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

    显示为预测性维护数据集配置高级数据选项的屏幕截图。

  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. 选择“训练”。

跟踪训练过程

显示在何处跟踪预测性维护分类模型训练的屏幕截图。

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

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

评估模型

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

检查模型

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

测试模型

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

显示使用已训练模型进行预测的屏幕截图。

在“示例数据”部分,你可以为模型提供输入数据进行预测。 每个字段对应于用于训练模型的列。 这是验证模型行为是否符合预期的简便方法。 默认情况下,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。 这与“结果”部分中置信度最高的预测值相同。

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

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