实验6 - 预测机器故障类型(制造)

前言:

在本教程中,您将扮演某大型制造企业维护团队的业务分析师角色预测生产过程中的常见事故。内容包含: 

  1. 概述
  2. 将数据集上传至S3存储桶
  3. 在Canvas中导入数据集
  4. 构建和训练ML模型
  5. 使用该模型生成预测结果

在开始本实验室之前,请确保您已经完成“手把手带你启动 Amazon SageMaker Canvas ”(先决条件)部分中描述的步骤。

关于本教程
时间 10 分钟                                           
费用 免费套餐
相关行业 通用
相关产品 Amazon SageMaker Canvas
受众 业务分析师
级别 初级
上次更新日期 2022年5月

教程说明

进入开发环境 

点击右侧按钮“登陆控制台”进入开发环境,如果您还没有账户,请先注册账户。

海外区域业务或个人使用,请注册“海外区域账户”;

中国区域业务(需企业营业执照认证),请注册“中国区域账户”。

  • 在本实验室中,您将扮演某大型制造企业维护团队的业务分析师角色。作为一名业务分析师,您所在的维护团队要求您协助预测常见故障。他们向您提供了一份历史数据集,其中包含与特定故障类型相关的特征,并希望您预测未来可能会发生哪种故障。这些故障类型包括No Failure(无故障)、Overstrain(过度应变)和Power Failure(电源故障)。数据模式列示如下:

    列名

    数据类型

    说明

    UID

    整数

    唯一标识符,范围为1-10000

    productID

    字符串

    由字母L、M或H组成,分别代表低、中、高产品质量变体,以及变体的具体序列号

    type

    字符串

    与产品ID相关的首字母,仅由L、M或H组成

    air temperature [K]

    十进制数

    气温,单位为开尔文

    process temperature [K]

    十进制数

    精确控制的温度,以确保特定类型产品的质量,单位为开尔文

    rotational speed [rpm]

    十进制数

    绕轴旋转的物体转速,由该物体的转数除以时间计算而得,单位为每分钟转数

    torque [Nm]

    十进制数

    通过半径的机器旋转力,单位为牛顿米

    tool wear [min]

    整数

    工具磨损,单位为分钟

    failure type (target)

    字符串

    无故障、电源故障或过度应变故障

  • 第一步是下载我们将使用的数据集。请点击此处下载。

    进入亚马逊云科技管理控制台,在控制台顶部的搜索框中搜索S3,然后转到S3服务控制台。

    在S3控制台,点击sagemaker-studio-*存储桶。

    sagemaker-studio-*桶是在您在“手把手带你启动Amazon SageMaker Canvas  ”(先决条件)部分创建SageMakerStudio域时自动创建的。

    点击Upload(上传)。

    Upload(上传)页面,拖放您刚刚下载的maintenance_dataset.csv文件,然后在页面底部点击Upload(上传)。上传完成后,点击右上方的Close(关闭)按钮。现在,您应该看到文件已经上传至您的存储桶中。

  • 返回在手把手带你启动 SageMaker Canvas(先决条件)部分创建的 SageMaker Canvas 选项卡。在左边的菜单上,您可以点击第二个图标,进入数据集部分,然后点击 Import(导入)按钮。

    现在,选择我们之前上传数据集的存储桶,即sagemaker-studio-*存储桶。

    现在您可以通过选择其左侧的复选框而选择之前上传的 maintenance_dataset.csv 文件。在页面底部会弹出两个新的按钮:Preview all(预览全部)和 Import Data(导入数据)。我们选择第一个。

    现在,您会看到将要导入的数据集100行预览。核对无误后,点击Import Data(导入数据)。

  • 现在,请点击左侧菜单上的第二个按钮,返回网页的Models(模型)部分。

    点击+ New model(构建新模型),并为您的模型添加一个名称,例如“Housing Prices“或”Housing Regression“。

    如果是首次构建Canvas模型,将会弹出一个信息窗口,介绍如何通过4个简单步骤构建首个模型。您可以先读一遍,然后再返回本指南。

    在模型视图中,您会看到四个选项卡,分别对应构建模型并用来生成预测的四个步骤: Select(选择)、 Build(构建)、 Analyze(分析)、 Predict(预测)。在第一个 Select(选择)选项卡中,点击单选按钮,选择我们之前上传的maintenance_dataset.csv数据集。该数据集包括9列和1万行。点击底部的 Select dataset(选择数据集)按钮。

    Canvas将自动跳转至Build(构建)阶段。在该选项卡中,请选择目标列,在我们的示例中为y。您的营销团队已告知您,这一列表示现有客户是否已办理过银行存单。此即训练模型进行预测的内容。Canvas会自动检测到这是一个2 Category(2 类)问题(也称为二元分类)。如果检测到模型类型错误,您可以通过屏幕中央的Change type(更改类型)链接手动更改。

    应注意的是,由Failure Type(故障类型)的列名可知,该数据集对No Failure(无故障)类而言极不平衡。虽然Canvas和AutoML底层功能可以部分处理数据集的不平衡问题,但这可能会导致性能出现一些偏差。作为本实验后的一个额外步骤,您可以参阅其他资源,了解如何通过Amazon SageMaker Data Wrangler之类的服务平衡您的数据集。

    在屏幕的下半部分,您可以查看数据集的一些统计数据,包括缺失值和不匹配值、唯一值、均值和中值。这也可以用来放弃一些列,如果我们不打算在预测中使用这些列,只需在左侧的复选框取消勾选即可。

    探索过该部分后,就到了最终训练模型的时候了!在构建完整的模型之前,通过训练一个Quick Model(快速模型),从而对我们的模型性能有一个大致了解,不失为一种很好的做法。为优先考虑速度而非准确性,快速模型所训练的模型和超参数组合较少,特别是在像我们这样想证明ML模型训练在我们用例之中的价值情况下。请注意,快速构建不能用于超过5万行的模型。让我们继续并点击Quick build(快速构建)。

    现在,我们等待2-15分钟。由于数据集很小,这可能需要不到2分钟的时间。完成后,Canvas将自动跳转至Analyze(分析)选项卡,为我们展示快速训练的结果。使用快速构建所做的分析可估测出,我们的模型在99.2%的情况下能够预测出正确的结果。

    我们重点查看第一个选项卡:Overview(概览)。该选项卡向我们展示了Column impact(列影响),也就是每一列在预测目标列中的大致重要性。在该示例中,duration列在预测将会发生哪类故障方面具有最大影响。

    如果以下各图中的数字与您的数字不同,不必担心。机器学习在模型训练过程中加入了一些随机性,可能导致不同的构建所生成的结果不同。

    跳转至“分析“的Scoring(得分)部分后,可以看到预测值相对于实际值的分布图。请注意,大部分故障均将归入No Failure Category(无故障类)。如果您想了解关于Canvas如何使用SHAP基准为机器学习带来可解释性的更多信息,请查看Canvas文档中的“Evaluating
    Your Model's Performance in Amazon SageMaker Canvas“
    部分内容以及SHAP Baselines for Explainability页面。

    您对故障类型以及该模型如何基于一系列输入来预测故障类型最感兴趣。您可以点击右侧的 Advanced metrics(高级指标)链接,仔细观察结果。
    点击后将显示一个矩阵,便于您更仔细地检查结果。在机器学习中,其被称为混淆矩阵。 该矩阵默认的主导类为No Failure(无故障)。在最右侧的类下拉菜单下方,您会看到Class(类)下拉菜单,通过该下拉菜单,可以选择和查看其他两种故障类型 - Overstrain Failure (过度应变故障)和Power Failure(电源故障)- 的高级指标。
    在机器学习中,模型的准确率指的是正确预测的数量除以总预测量而得到的值。蓝色方框代表模型对已知结果的测试数据子集所做出的正确预测。在No Failure(无故障)的默认情况下,在1986个总预测中,正确预测的数量为1923个,准确率达到99%。另外,对于Overstrain Failure (过度应变故障)类,在38个总预测中,正确预测的数量为32个,准确率达到84%。最后,对于Power
    Failure(电源故障)类,在19个总预测中,正确预测的数量为16个,准确率达到84%。在机器学习中,用来衡量这种情况的比率是TP/(TP+FN)。该比率被称为召回率。
    现在,您有两个选择:
     
    1. 您可以点击页面底部的Predict(预测)按钮,使用该模型进行某些预测;
    2. 您可以创建一个新版本的模型,通过Standard Build(标准构建)过程进行训练。这耗时更长 - 大约1-2个小时 - 但准确率更高。
     
    由于我们旨在预测故障,且该模型在84%的情况下均能正确预测出故障,因此我们确信能够实际使用该模型确定潜在故障。我们将使用第1个选项。如果我们信心不足,则可以让数据科学家审查 Canvas的建模情况,并通过第2个选项进行可能的改进。
     
    请注意,若通过 SageMaker Studio集成与数据科学家分享模型,则必须使用Standard Build(标准构建)训练模型。 Predictions(预测)不需要完整构建,但其性能可能差于经完全训练过的模型。
  • 现在,模型已经训练完毕,让我们用其进行一些预测。请在Analyze(分析)页面底部选择Predict(预测),或者选择Predict(预测)选项卡。

    现在,请选择Select dataset(选择数据集),并选择maintenance_dataset.csv。接下来,在页面底部选择Generate predictions(生成预测)。Canvas将使用该数据集来生成预测结果。一般而言,虽然不建议使用相同的数据集进行训练和测试,但为了简单起见,我们使用的是同一个数据集。几秒后,预测完成。您可以点击眼睛图标,通过悬停鼠标查看预测结果预览,或者点击下载按钮,下载包含完整输出的CSV文件。SageMaker Canvas 将为每一行数据返回一个预测值,以及关于预测是否正确的概率。

    您也可以选择Single prediction(单次预测)而非批量预测,逐一预测数值。Canvas会显示一个供您为各特性手动输入数值的视图,并生成预测。这非常适合于what-if scenarios(假设场景)情况:例如,工具磨损对故障类型有何影响?如果工艺有所改进或下降呢?转速怎么样,如果改变转速会怎么样呢?


入门资源中心

获取更多上手教程,开发资料,以及成本管理攻略。