前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >ML.NET 快速入门与实践指南:Net机器学习利器

ML.NET 快速入门与实践指南:Net机器学习利器

作者头像
郑子铭
发布于 2025-04-07 01:53:31
发布于 2025-04-07 01:53:31
9700
代码可运行
举报
运行总次数:0
代码可运行

ML.NET 是一个跨平台的开源机器学习框架,专门为 开发者设计,允许在 .NET 应用程序中集成机器学习功能。如果你想在 .NET 应用中使用机器学习,ML.NET 是一个很好的选择。

安装 ML.NET

第一步,老规矩,先安装

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dotnet add package Microsoft.ML

加载数据

ML.NET 通常需要数据集来进行训练和测试。假设有一个 CSV 文件,包含学生的学习时长和他们的考试成绩。我们将创建一个简单的模型,预测考试成绩。

示例数据集(data.csv):
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
StudyHours,Score
1,50
2,60
3,65
4,70
5,75

创建数据模型类

首先,定义一个数据类,表示 CSV 文件中的数据。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
using Microsoft.ML.Data;

public class StudentData
{
    [LoadColumn(0)]
    public float StudyHours;

    [LoadColumn(1)]
    public float Score;
}

然后,定义一个预测结果类,表示模型输出的预测值。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class StudentPrediction
{
    public float Score;
}

构建和训练模型

Program.cs 中,我们将加载数据、构建一个简单的线性回归模型,并进行训练。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
using System;
using Microsoft.ML;
using Microsoft.ML.Data;
using System.Linq;
var mlContext = new MLContext();

// 加载数据
var data = mlContext.Data.LoadFromTextFile<StudentData>("data.csv", separatorChar: ',', hasHeader: true);


// 分割数据为训练集和测试集
var trainTestSplit = mlContext.Data.TrainTestSplit(data, testFraction: 0.2);

// 构建数据处理管道(数据预处理)
var pipeline = mlContext.Transforms.Concatenate("Features", new[] { "StudyHours" })
           .Append(mlContext.Regression.Trainers.Sdca(labelColumnName: "Score", maximumNumberOfIterations: 100));

// 训练模型
var model = pipeline.Fit(trainTestSplit.TrainSet);

// 使用模型进行预测
var predictions = model.Transform(trainTestSplit.TestSet);

// 获取模型的评估指标
var metrics = mlContext.Regression.Evaluate(predictions, labelColumnName: "Score", scoreColumnName: "Score");

// 打印评估指标
Console.WriteLine($"R^2: {metrics.RSquared}");
Console.WriteLine($"Mean Absolute Error: {metrics.MeanAbsoluteError}");
Console.WriteLine($"Root Mean Squared Error: {metrics.RootMeanSquaredError}");

// 使用模型进行预测
var predictionFunction = mlContext.Model.CreatePredictionEngine<StudentData, StudentPrediction>(model);
var newStudent = new StudentData { StudyHours = 6 };
var predictedScore = predictionFunction.Predict(newStudent);

Console.WriteLine($"Predicted Score for 6 hours of study: {predictedScore.Score}");

运行项目, 将训练模型并预测一个学习了 6 小时的学生的考试成绩。

总结

上面演示了如何使用 ML.NET 来构建一个机器学习模型。可以根据需要扩展这个示例,处理更多复杂的任务(例如分类、聚类、深度学习等)。

ML.NET 提供了许多有用的功能,包括:

  • • 数据加载和预处理
  • • 特征提取和转换
  • • 各种机器学习算法(分类、回归、聚类等)
  • • 训练和评估模型
  • • 模型的持久化和加载
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-04-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DotNet NB 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
C#开源跨平台机器学习框架ML.NET----结合SqlSugar进行多类分类
前一篇文章《C#开源跨平台机器学习框架ML.NET----二元分类情绪分析》我们做了ML.NET中二元分类任务的一个小Demo,今天我们来试一下多类分类的Demo。
Vaccae
2019/09/17
1.3K0
C#开源跨平台机器学习框架ML.NET----结合SqlSugar进行多类分类
.NET 平台上的开源模型训练与推理进展
电子书仓库:https://github.com/whuanle/cs_pytorch
痴者工良
2025/04/11
830
.NET 平台上的开源模型训练与推理进展
AI与.NET技术实操系列(二):开始使用ML.NET
在当今技术飞速发展的时代,机器学习(Machine Learning, ML)已成为推动创新和变革的核心力量。从智能推荐系统到自动化决策工具,ML的应用无处不在,深刻影响着我们的生活和工作方式。对于.NET开发者而言,掌握ML技术不仅意味着紧跟潮流,更是在竞争激烈的市场中保持优势的关键。作为微软的旗舰开发平台,.NET通过ML.NET为开发者提供了一个强大且易于使用的机器学习框架,使他们能够在不离开熟悉的开发环境的情况下,构建、训练和部署ML模型。
AI.NET 极客圈
2025/03/20
1450
AI与.NET技术实操系列(二):开始使用ML.NET
.NET开发人员如何开始使用ML.NET
随着谷歌,Facebook发布他们的工具机器学习工具Tensorflow 2和PyTorch ,微软的CNTK 2.7之后不再继续更新(https://docs.microsoft.com/zh-cn/cognitive-toolkit/releasenotes/cntk_2_7_release_notes),Build 2019 微软也发布了ML.NET 1.0 ,这是一个面向机器学习开发者的新框架。可以说2019年是机器学习社区普及化的一年,所有的这些发布清楚地表明了IT行业的发展方向。从数据集改进模型到新的模型更新,以及优化硬件。
张善友
2019/07/02
1.2K0
C#使用ML.Net完成人工智能预测
Visual Studio2019 Preview中提供了图形界面的ML.Net,所以,只要我们安装Visual Studio2019 Preview就能简单的使用ML.Net了,因为我的电脑已经安装了Visual Studio2019,所以我不需要重头安装Visual Studio2019 Preview,只要更新即可。
Kiba518
2020/12/09
1.2K0
C#使用ML.Net完成人工智能预测
使用ML.Net和CSharp语言进行机器学习
本文介绍.net中的机器学习技术实现,不涉及数学方面的内容。它将重点关注在.net中的基本工作流程及其数据处理结构,以及怎么样通过使用开源项目ML.Net 0.2来进行机器学习的实验。
程序你好
2018/07/23
2.4K0
使用C# 探索 ML.NET 中的不同机器学习任务
ML.NET 是 Microsoft 开源的针对 .NET 应用程序的 跨平台机器学习库,允许您使用 C#、F# 或任何其他 .NET 语言执行机器学习任务。此外,ML.NET 支持在其他机器学习框架中构建的模型,如TensorFlow,ONNX,PyTorch 等,它也具有极高的性能,可用于各种机器学习任务。
张善友
2022/03/30
1.5K0
使用C# 探索 ML.NET 中的不同机器学习任务
ML.NET介绍:最常使用的数据结构IDataView
ML.NET一种跨平台的开源机器学习框架。ML.NET将让广大.NET开发人员可以开发自己的模型,并且将自定义的机器学习融入到其应用程序中,无需之前拥有开发或调整机器学习模型方面的专业知识。能够支持诸多机器学习任务,比如说分类(比如文本分类和情绪分析)以及回归(比如趋势预测和价格预测),使用模型用于预测,还包括该框架的核心组件,比如学习算法、转换和核心的机器学习数据结构。
程序你好
2019/03/04
1.8K0
ML.NET介绍:最常使用的数据结构IDataView
AI与.NET技术实操系列(一) - 开篇
在技术飞速发展的时代,人工智能(AI)已成为创新和变革的核心,从智能助手到自动化决策系统,应用无处不在。对于软件开发者而言,AI 扩展了应用开发的边界,并为传统问题带来新思路,掌握 AI 技术已是保持竞争优势的关键。
AI.NET 极客圈
2025/03/20
1060
AI与.NET技术实操系列(一) - 开篇
ML.NET 发布0.11版本:.NET中的机器学习,为TensorFlow和ONNX添加了新功能
微软发布了其最新版本的机器学习框架:ML.NET 0.11带来了新功能和突破性变化。
张善友
2019/07/02
6180
【Python】机器学习之逻辑回归
(1)安装机器学习必要库,如NumPy、Pandas、Scikit-learn等;
SarPro
2024/02/20
2410
【Python】机器学习之逻辑回归
AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
人工智能(AI)技术的迅猛发展推动了各行各业的数字化转型。图像分类,作为计算机视觉领域的核心技术之一,能够让机器自动识别图像中的物体、场景或特征,已广泛应用于医疗诊断、安防监控、自动驾驶和电子商务等领域。
AI.NET 极客圈
2025/03/20
1550
AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
C#机器学习之判断日报是否合格
简单来说机器学习的核心步骤在于“获取学习数据;选择机器算法;定型模型;评估模型,预测模型结果”,下面本人就以判断日报内容是否合格为例为大家简单的阐述一下C#的机器学习。
雪雁-心莱科技
2019/03/15
5010
C#机器学习之判断日报是否合格
AI与.NET技术实操系列(九):总结篇 ── 探讨.NET 开发 AI 生态:工具、库与未来趋势
本文作为本系列的最后一篇,旨在全面探讨 .NET 生态中与 AI 相关的工具、库、框架和资源,帮助开发者了解如何在 .NET 环境中开发 AI 应用。我们将分析 Microsoft 的 AI 战略、核心工具和库(如 ML.NET、Azure AI SDK 和 Semantic Kernel)、.NET 9 的新特性,以及社区资源和未来趋势,从而在总体上为 .NET 开发者提供一个清晰的 AI 开发路线图。
AI.NET 极客圈
2025/03/24
1370
AI与.NET技术实操系列(九):总结篇 ── 探讨.NET 开发 AI 生态:工具、库与未来趋势
基于Spark的机器学习实践 (一) - 初识机器学习
◆学习一个模型,使用的数据是没有被标记过的,自己默默地在学习隐含的特征,寻找模型与规律
JavaEdge
2019/04/08
1.1K0
ML.NET 3.0 增强了深度学习和数据处理能力
.NET团队在 2023.11.28 在博客上正式发布了 ML.NET 3.0::https://devblogs.microsoft.com/dotnet/announcing-ml-net-3-0/[1],强调了两个主要的兴趣点,即深度学习和数据处理,使开发人员能够完全在 .NET 生态系统中创建注入 AI 的应用程序。开源 ML.NET 框架[2]的主要卖点,旨在帮助开发人员能够使用C#和F#构建自定义ML模型并将其集成到应用程序中。这是通过命令行 (CLI) 和模型生成器等工具完成的,或者创建像大型语言模型 (LLM) 这样的结构来完成,这些模型为 ChatGPT 和 无处不在的“Copilot”AI 助手提供支持。
张善友
2023/12/06
4570
ML.NET 3.0 增强了深度学习和数据处理能力
.NET机器学习 ML.NET 1.4预览版和模型生成器更新
ML.NET 是面向.NET开发人员的开源和跨平台机器学习框架。 ML.NET 还包括Model Builder (一个简单的UI工具)和 CLI ,使用自动机器学习(AutoML)构建自定义机器学习(ML)模型变得非常容易。
张善友
2020/06/19
1.9K0
.NET机器学习 ML.NET 1.4预览版和模型生成器更新
YOLOv7 在 ML.NET 中使用 ONNX 检测对象
YOLO(You Only Look Once)是一种先进的实时目标检测系统。它是一个在COCO数据集上预训练的物体检测架构和模型系列,其版本也是在不断优化更新。2022年7月,YOLOv7 来临。官方版的YOLOv7相同体量下比YOLOv5 精度更高,速度更快。
桑榆肖物
2022/11/18
1.7K0
YOLOv7 在 ML.NET 中使用 ONNX 检测对象
在 ML.NET 中使用Hugginface Transformer
本文主要来自 https://rubikscode.net/2021/10/25/using-huggingface-transformers-with-ml-net/ ,根据自己的理解做了一些修改。ML.NET 集成的ONNX运行时,Hugginface提供了一种以ONNX格式导出Transformers的方法。 首先以 ONNX 文件格式导出 Hugginface Transformer , ML.NET 然后将其加载到 ONNX 运行时中。
张善友
2022/09/26
1.1K0
使用ML.NET训练一个属于自己的图像分类模型,对图像进行分类就这么简单!
今天大姚给大家分享一个.NET开源、免费、跨平台(支持Windows、Linux、macOS多个操作系统)的机器学习框架:ML.NET。并且本文将会带你快速使用ML.NET训练一个属于自己的图像分类模型,对图像进行分类。
追逐时光者
2024/07/16
3440
使用ML.NET训练一个属于自己的图像分类模型,对图像进行分类就这么简单!
推荐阅读
相关推荐
C#开源跨平台机器学习框架ML.NET----结合SqlSugar进行多类分类
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档