当前位置: 首页 > backend >正文

使用 ML.NET Model Builder 训练机器学习模型进行预测性维护

在带有 ML.NET 的 Visual Studio 中使用 Model Builder 来训练机器学习模型,该模型利用传感器数据检测制造设备是否损坏。

学习目标

完成本模块后,你将了解:

  • 什么是 Model Builder 及其可用于解决哪些问题
  • 如何使用 Model Builder 训练机器学习模型
  • 如何使用 Model Builder 使用机器学习模型

先决条件

  • 具备 .NET 的中级知识。
  • 安装了 .NET 桌面开发工作负载的 Visual Studio 2022。 选择此工作负载时,将自动安装 .NET 6.0 SDK。
  • ML.NET Model Builder 扩展,包含在 Visual Studio 中。 有关安装说明,请参阅如何安装 ML.NET Model Builder。

简介

你就职于一家制造公司,该公司在其运营中会使用工业设备。 其中一台设备发生故障时,就会导致公司损失时间和资金。 这就是务必对这些设备进行维护的原因。

场景:预测性维护

影响维护需求的因素有很多,例如使用情况。 各个设备都不相同。 主动进行维护有助于最大限度地减少公司在设备损坏时要花费的时间和资金。 到目前为止,你一直在手动跟踪哪些设备需要维护。 随着公司的扩张,此过程变得更难以管理。

如果可以使用传感器数据来自动预测设备何时需要维护,该怎么做?

机器学习可帮助分析这些传感器的历史数据。 机器学习还可以涉及学习模式,以帮助预测机器是否需要维护。

你想利用 .NET 技能并使用熟悉的工具(如 Visual Studio)来生成解决方案,但你在机器学习方面没有什么经验。 因此,你决定使用 ML.NET,这是适用于 .NET 的开放源代码机器学习框架。 你还将使用该框架的 Visual Studio 扩展(即 Model Builder)来生成机器学习模型。

学习内容

本模块将介绍什么是 Model Builder、如何用它来训练机器学习模型,以及如何在 .NET 应用程序中使用这些模型。

什么是模型生成器?

机器学习是一种使用数学和统计学来识别数据中的模式而无需显式编程的技术。 Model Builder 是一种用于通过使用 ML.NET 训练和部署自定义机器学习模型的图形化 Visual Studio 扩展。

显示 M L dot NET 的 Model Builder Visual Studio 扩展的屏幕截图。

例如,假设你要预测房屋的价格。 如果单纯使用一种特征(如房屋面积,以平方英尺为单位)来估算房价,你可能会编写一种启发式算法,将较大的房屋与较高的价格联系起来。

显示房价线性回归模型的图形。

不过现实中并非总是如此简单。 许多变量会影响房价。 在这种情况下,提出一种简单的启发算法来捕获边缘情况会变得困难,而机器学习可能是更好的解决方案。

对于机器学习,可根据实际观察使用历史数据识别这些规则,而不用对规则进行显式编程。 通过机器学习发现的模式随后用于创建一个名为模型的项目,用于使用和以前未见过的数据进行预测。

ML.NET 是适用于 .NET 的开放源代码的跨平台机器学习框架。 因此,你可以应用现有的 .NET 技能并使用熟悉的工具(如 Visual Studio)来训练机器学习模型。

可以使用 Model Builder 解决哪些类型的问题?

可以使用 Model Builder 解决许多常见的机器学习问题,例如:

  • 对数据进行分类:按主题整理新闻文章。
  • 预测数值:估算房价。
  • 对具有类似特征的项目分组:细分客户。
  • 推荐项目:推荐电影。
  • 对图像进行分类:根据图像内容标记图像。
  • 检测图像中的物体:检测十字路口的行人和自行车。

如何使用 Model Builder 生成模型?

通常,向应用程序添加机器学习模型的过程包含两个步骤:训练和使用。

培训

训练是将算法应用于历史数据以创建捕获潜在模式的模型的过程。 然后,可以使用该模型对新数据进行预测。

Model Builder 使用自动化机器学习 (AutoML) 找出应用于数据的最佳模型。 AutoML 自动执行将机器学习应用到数据的过程。 你可以对数据集运行 AutoML 试验来循环访问不同的数据转换、机器学习算法和设置,然后选择最佳模型。

使用模型生成器不需要具备机器学习的专业知识。 你所需要的只是一些数据和要解决的问题。

模型训练过程包括以下步骤:

  1. 选择场景 - 你想解决什么问题? 选择的场景取决于数据和要预测的内容。
  2. 选择环境 - 你要在何处训练模型? 根据可用计算资源、成本、隐私要求和其他因素,你可以选择在本地计算机上或在云中训练模型。
  3. 加载数据:加载要用于训练的数据集。 定义要预测的列,然后选择要用作预测输入的列。
  4. 训练模型:让 AutoML 根据你选择的场景选择最适用于数据集的算法。
  5. 评估模型:使用指标来评估模型的性能和模型对新数据的预测。

消耗

训练机器学习模型后,就可以用它来预测。 “使用”是使用已训练机器学习模型对新的和以前未见过的数据进行预测这一过程。 使用 Model Builder 时,可以通过新的和现有的 .NET 项目使用机器学习模型。

基于 ML.NET 的机器学习模型会进行序列化并保存到文件中。 然后,模型文件可以加载到任何 .NET 应用程序中,并用于通过 ML.NET API 进行预测。 这些应用程序类型包括:

  • ASP.NET 核心 Web API
  • Azure Functions(Azure 功能服务)
  • Blazor
  • Windows Presentation Foundation (WPF) 或 Windows 窗体 (WinForms)
  • 主机
  • 类库

知识检查 - 模型构建器

1. 什么是模型生成器?

数据库基架工具

一种用于通过 ML.NET 训练和部署自定义机器学习模型的图形化 Visual Studio 扩展

一种用于通过 ML.NET 生成、训练和部署自定义机器学习模型的图形化 Visual Studio Code 扩展

2. 训练机器学习模型是什么意思?

将算法应用于历史数据来创建一个项目或模型,用于捕获潜在的模式,并可用于进行预测

创建练习例程

使用新数据进行预测

3. 使用模型是什么意思?

将算法应用于数据集

使用已训练的机器学习模型对新的和未见过的数据进行预测

使用所有计算资源

 

选择场景并准备数据

本单元将介绍如何选择场景、选择训练环境以及准备要在 Model Builder 中进行训练的数据。

开始训练过程

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

 提示

类库的一个优点就是可移植性。 使用类库,可以轻松地从控制台、桌面、Web 和任何其他类型的 .NET 应用程序引用其中的任何模型。 建议将机器学习模型 (ML.NET) 项添加到类库中。

机器学习模型 (ML.NET) 项向项目添加一个文件扩展名为 .mbconfig 的文件。 使用 .mbconfig 扩展名的文件是采用 JSON 格式编写的 Model Builder 配置文件。 使用这些文件可以执行以下操作:

  • 为你的模型提供一个名称。
  • 通过源代码管理与团队中其他人协作。
  • 保留状态。 如果在训练过程中(时间点不限)需要关闭 Model Builder,系统会保存你的状态,让你可以从离开的位置继续。

选择方案

训练机器学习模型的第一步是根据你要预测的内容确定哪种场景和机器学习任务最适合。

什么是方案?

场景可描述你想使用数据解决的问题。 常见的场景包括上一个单元中列出的场景:

  • 对数据进行分类:按主题整理新闻文章。
  • 预测数值:估算房价。
  • 对具有类似特征的项目分组:细分客户。
  • 对图像进行分类:根据图像内容标记图像。
  • 推荐项目:推荐电影。
  • 检测图像中的物体:检测十字路口的行人和自行车。

这些场景对应机器

http://www.xdnf.cn/news/13269.html

相关文章:

  • 60天python训练计划----day50
  • 连锁超市冷库节能解决方案:如何实现超市降本增效
  • spring中的ImportSelector接口详解
  • 《高等数学》(同济大学·第7版)第四章第一节不定积分的概念与性质
  • 微软PowerBI考试 PL300-在 Power BI 中设计语义模型 【附练习数据】
  • C++11列表初始化:从入门到精通
  • Python学习(8) ----- Python的类与对象
  • 用 Rust 重写 Linux 内核模块实战:迈向安全内核的新篇章
  • LangChain 中的文档加载器(Loader)与文本切分器(Splitter)详解《二》
  • OpenGL-什么是软OpenGL/软渲染/软光栅?
  • 【求出100~500之间所有每位数的乘积大于每位数的和的数。】2022-4-16
  • c语言(持续更新)
  • 第三章支线四 ·事件风暴 · 时序与响应的协奏
  • LangGraph 深度解析:下一代AI应用编排引擎
  • 五大主流多智能体框架分析
  • DAY 26 函数专题1
  • 如何在Shopify中集成API
  • break 语句和 continue 语句
  • 基于ThinkPHP8.*的后台管理框架--Veitool框架学习使用
  • 免费批量抠图工具使用说明
  • OD 算法题 B卷【最大岛屿体积】
  • Day1 java基础知识
  • raid存储技术
  • vs code无法ssh远程连接linux机器----解决方案
  • BugKu Web渗透之程序员本地网站
  • MQTT示例体验(C)
  • LangChain4j(18)——通过Xinference调用Rerank模型
  • 打卡Day49
  • Windows11+VS2019配置Libigl-2.4.1
  • EasyImage实战:结合内网穿透技术实现私有图床部署过程