什么是机器学习管道? 如何创建一个?

作者:chen_h
微信号 & QQ:862251340
微信公众号:coderpai


熟悉机器学习管道

机器学习管道用于帮助自动化机器学习工作流程。它们的工作方式是使一系列数据可以在一个模型中进行转换和关联,该模型可以进行测试和评估以实现结果,无论结果是正面还是负面。

机器学习(ML)管道包括几个训练模型的步骤。机器学习流水线是迭代的,因为每个步骤都被重复执行,以不断提高模型的准确性并获得成功的算法。为了构建更好的机器学习模型并从中获得最大价值,可访问,可扩展和持久的存储解决方案势在必行,这为本地对象存储铺平了道路。

如今,数据已成为一种现代货币。正在从捕获的大型数据集(大数据)中提取巨大的价值和情报,从而获得了当今世界切实可行的见解。这不仅仅是要再存储数据,还需要捕获,保存,访问和转换数据以利用其可能性和可提供的价值。

  1. 为任何ML模型建立合适的管道的主要目的是对其进行控制。 井井有条的管道使实施更加灵活。 这就像是一台计算机的分解图,您可以在其中拾取有故障的零件并进行替换,在我们的情况下,是替换大量代码。
  2. 术语ML模型是指由训练过程创建的模型。
  3. 学习算法在训练数据中找到将输入数据属性映射到目标(要预测的答案)的模式,然后输出捕获这些模式的ML模型。
  4. 一个模型可以具有许多依赖性,并且可以存储所有组件以确保所有功能都可以脱机使用和联机使用以进行部署,所有信息都存储在中央存储库中。
  5. 管道由一系列组成部分组成,这些组成部分是计算的汇编。 数据通过这些组件发送,并在计算的帮助下进行操作。

管道不是单向流动。 它们本质上是循环的,可以进行迭代以提高机器学习算法的得分,并使模型可扩展。

当今许多ML模型都是“训练过的”神经网络,能够执行特定任务或提供从“发生了什么”到“可能发生什么”(预测分析)的洞察力。 这些模型很复杂,并且永远不会完成,而是通过重复数学或计算过程将其应用于先前的结果,并在每次进行改进以使其更接近“解决问题”。 数据科学家希望获得更多捕获的数据,以提供训练ML模型的动力。

ML管道相关的挑战

典型的机器学习管道包括以下过程:

  • 数据采集
  • 数据清理
  • 特征提取(标注和降维)
  • 模型验证
  • 可视化

在这里插入图片描述

数据收集和清理是任何想要从数据中获得意义的机器学习工程师的主要任务。但是获取数据,尤其是获取正确的数据本身就是一项艰巨的任务。

数据质量及其可访问性是在构建管道的初始阶段将遇到的两个主要挑战。

应该将捕获的数据汇总起来,收集的好处应该超过收集和分析的成本。

为此,建议每个组织都使用数据湖。数据湖是一个集中的存储库,它允许用户以任何规模存储结构化和非结构化数据。它还通过将模式应用于读取而不是写入来启用即席分析。这样,用户可以将多个分析和处理框架应用于同一数据。

由于每种情况对数据量都有自己的讨价还价的机会,通常在无人监督的情况下,如果可用于培训的数据量较少,事情可能会变得一发不可收拾。

用例

机器学习模型的生命周期需要更适应模型调整和监视。 随着新数据的频繁出现,结果可能会有重大变化。

当前,正在对现有的神经网络进行改进,以使它们即使在数据模糊且缺少标记的训练数据时也能运行。

简单的Python管道

此代码段显示了创建和运行基本管道所需的对象和调用:

在这里插入图片描述

该片段以常见的Azure机器学习对象,工作区,数据存储区,Compute_Target和一个实验开始。 然后,代码创建对象来保存input_data和output_data。 数组步骤包含一个元素,一个PythonScriptStep,它将使用数据对象并在Compute_Target上运行。 然后,代码实例化Pipeline对象本身,并传入工作空间和steps数组。 对Experiment.submit(pipeline)的调用开始运行Azure ML管道。 在管道完成之前,对wait_for_completion()的调用将一直阻塞。

在项目变大或接近部署之前,您的管道应该更粗糙而不是细粒度。 如果您认为ML项目涉及各个阶段,而流水线则提供了一个完整的工作流程来引导您进入特定阶段,那么您就走对了。

C#用于机器学习与其他编程语言相比,有以下优势: - **与现有系统集成性好**:C#广泛应用于桌面、Web、移动和云端开发,对于已经使用.NET技术栈的企业和开发者来说,能方便地将机器学习功能集成到现有的.NET应用程序中,无需引入新的技术栈,降低了开发成本和复杂度[^3]。 - **强类型检查**:C#的强类型特性有助于在编译阶段发现许多潜在的错误,提高代码的稳定性和可维护性,减少运行时错误,尤其在大型机器学习项目中,可提升开发效率和代码质量[^2]。 - **高效的执行速度**:C#具有高效的执行速度,能够快速处理大量数据和复杂的计算任务,在对性能要求较高的机器学习场景中表现出色,例如实时预测和处理大规模数据集等[^2]。 - **丰富的开发工具**:C#拥有丰富的开发工具和集成开发环境(IDE),如Visual Studio,提供了强大的调试、代码分析和可视化功能,能够提高开发者的工作效率,使机器学习开发更加便捷[^2]。 - **适合企业级开发**:C#在企业级开发中有着广泛的应用,其安全性、稳定性和可扩展性能够满足企业对机器学习应用的严格要求,如数据安全、系统稳定性和可维护性等。 以下是一个简单的使用ML.NET框架进行线性回归预测的C#代码示例: ```csharp using System; using System.Collections.Generic; using System.Linq; using Microsoft.ML; using Microsoft.ML.Data; using Microsoft.ML.Trainers; // 定义数据模型 public class HousingData { [LoadColumn(0)] public float Size; [LoadColumn(1)] [ColumnName("Label")] public float Price; } public class HousingPrediction { [ColumnName("Score")] public float Price; } class Program { static void Main() { // 创建MLContext var mlContext = new MLContext(); // 加载数据 var data = mlContext.Data.LoadFromTextFile<HousingData>("housing.csv", hasHeader: true); // 定义数据转换管道 var pipeline = mlContext.Transforms.Concatenate("Features", "Size") .Append(mlContext.Regression.Trainers.LinearRegression()); // 训练模型 var model = pipeline.Fit(data); // 创建预测引擎 var predictionEngine = mlContext.Model.CreatePredictionEngine<HousingData, HousingPrediction>(model); // 进行预测 var input = new HousingData { Size = 100 }; var prediction = predictionEngine.Predict(input); Console.WriteLine($"Predicted price: {prediction.Price}"); } } ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值