系列ml.net学习篇——初识机器学习(代码片段)

webmote webmote     2023-01-12     617

关键词:

由于公司项目涉及到机器学习和图像识别,虽然我并不是算法专家,但毕竟需要了解和知道其运转原理,因此自我进行了学习进化,决定在机器学习上有所进展,结合.NET技术的ML.NET,把机器学习的技能提升一个Level,如果你也有兴趣学习机器学习,并且恰好也是熟悉.NET技术栈,那么就和我一块学习吧… r u ready?

  • 📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!
  • 📢本文作者:由webmote 原创
  • 📢作者格言:无尽的折腾后,终于又回到了起点,工控,我来了 !

1.ML.NET 介绍


.NET 引入ML.NET,非常简单,只需要安装包即可。

<PackageReference Include="Microsoft.ML" Version="2.0.0" />

微软官方的目的就是,让你无需离开 .NET 生态系统,便可以使用 C# 或 F# 创建自定义 ML 模型。并让你可以轻松地将机器学习集成到 Web、移动、桌面、游戏和物联网应用中。

所以如果你刚好有Python训练好的模型,而正在烦恼怎么应用到.NET平台上时,那么刚好可以使用ML.NET,使用你的模型,它基本兼容市面上所有常见的数据格式,ML.NET支持TensorFlow和ONNX模型。

如果你已经有了模型,那么你现在可以导入,并使其开始运行和预测产出。

目前ML.NET运行在 Windows,linux和macOS上,当然需要.NET Core/5/6/7等支持。

2.AutoML

全称是自动机器学习,给定数据集后,它可以运行 AutoML 来循环访问不同的数据转换、机器学习算法和超参数,以选择最佳模型,微软出品,就这么牛逼。

一般传统的机器学习工作流程如下:

其中预处理、训练和评估是一个实验性和迭代过程,需要多次试验,直到获得满意的结果。

由于这些任务往往是重复的,因此 AutoML 可以帮助自动执行这些步骤。 除了自动化之外,在训练和评估过程中还使用优化技术来查找和选择算法和超参数。

3 ML.NET能力范畴

ML.NET提供了预测模型,可以做以下工作。

4 使用ML.NET的流程

使用ML.NET来进行机器学习,其流程还是比较简单的。
1. 将训练数据收集并加载到 IDataView 对象中
2. 指定操作的管道,以提取特征并应用机器学习算法
3. 通过在管道上调用 Fit() 来训练模型 评估模型并通过迭代进行改进
4. 将模型保存为二进制格式,以便在应用程序中使用
5. 将模型加载回 ITransformer 对象 通过调用
6. CreatePredictionEngine.Predict() 进行预测

5. 一个小例子

来源自官网的一个例子,使用拟合斜线预测房价。

MLContext mlContext = new MLContext();
HouseData[] houseData = 
               new HouseData()  Size = 1.1F, Price = 1.2F ,
               new HouseData()  Size = 1.9F, Price = 2.3F ,
               new HouseData()  Size = 2.8F, Price = 3.0F ,
               new HouseData()  Size = 3.4F, Price = 3.7F  ;
IDataView trainingData = mlContext.Data.LoadFromEnumerable(houseData);

// 2. Specify data preparation and model training pipeline
var pipeline = mlContext.Transforms.Concatenate("Features", new[]  "Size" )
    .Append(mlContext.Regression.Trainers.Sdca(labelColumnName: "Price", maximumNumberOfIterations: 100));

// 3. Train model
var model = pipeline.Fit(trainingData);
var testPriceDataView = model.Transform(trainingData);
var metrics = mlContext.Regression.Evaluate(testPriceDataView, labelColumnName: "Price");

// 4. Make a prediction
var size = new HouseData()  Size = 2.5F ;
var price = mlContext.Model.CreatePredictionEngine<HouseData, Prediction>(model).Predict(size);


Console.WriteLine($"Predicted price for size: size.Size * 1000 sq ft= price.Price * 100:Ck");


public class HouseData

    public float Size  get; set; 
    public float Price  get; set; 


public class Prediction

    [ColumnName("Score")]
    public float Price  get; set; 


拟合回归是最简单的一个,也是入门最好的算法了。
模型也很简单,就是计算出

总结

一切看起来比较顺畅,祝你好运!
让我们每天进步一点点!

系列ml.net学习篇——初识机器学习(代码片段)

由于公司项目涉及到机器学习和图像识别,虽然我并不是算法专家,但毕竟需要了解和知道其运转原理,因此自我进行了学习进化,决定在机器学习上有所进展,结合.NET技术的ML.NET,把机器学习的技能提升一个Level&#... 查看详情

使用c#探索ml.net中的不同机器学习任务(代码片段)

...?ML.NET是Microsoft开源的针对.NET应用程序的跨平台机器学习库,允许您使用C#、F#或任何其他.NET语言执行机器学习任务。此外,ML.NET支持在其他机器学习框架中构建的模型,如TensorFlow,ONNX,PyTorch等,它... 查看详情

当.net遇到机器学习

...介绍了什么是ML.NET之后,我们为你准备了Let’sLearn.NET系列栏目之机器学习篇,帮助你更加直观地了解,以及文末也附上免费的学习素材,内容丰富, 查看详情

机器学习第一篇初识机器学习

一、什么是机器学习?对于机器学习,没有一个明确的定义。从广义上来说,机器学习是一种能够赋予机器学习的能力以此让它完成直接编程无法完成的功能的方法。但从实践的意义上来说,机器学习是一种通过利用数据,训练... 查看详情

开始学习机器学习时你必须要了解的模型有哪些?机器学习系列之决策树进阶篇(代码片段)

前言在上一篇文章中我们已经详细介绍了决策树模型,并且提到了ID3算法及其局限性,那么在本篇文章中,我们将会介绍基于ID3算法进行改良的C4.5算法以及决策树拟合度的优化问题。目录前言1C4.5算法1.1修改局部最优... 查看详情

初识机器学习-理论篇

1.什么是机器学习?概念:利用计算机从历史数据中找到规律,并把这些规律用到未来不确定场景的决策。场景:{①确定性场景②不确定性场景}(人来干)数据分析+(计算机来干)机器学习2.数据(历史数据)3.规律从数据中找... 查看详情

使用ml.net进行保险价格预测(代码片段)

...篇文章已充分介绍过,ML.NET是一个开源的跨平台机器学习框架,特别适合.NET开发人员。它允许将机器学习集成到.NET应用中,而无需离开.NET生态系统,甚至拥有ML或数据科学背景。ML.NET 现有的各种内置模型训练器... 查看详情

全网最强c语言学习c语言入门篇(主线)——初识c语言①(代码片段)

...题这样的话看来是有些大言不惭,但博主有心将这个系列做好、做精。实话说博主学习C语言不过两个多月,也很能明白初学者的困惑,所以会尽肯能详细。同时作为一个系统的教程,这个系列会持续推新的,... 查看详情

一个开源的,跨平台的.net机器学习框架ml.net

...18大会上推出的一款面向.NET开发人员的开源,跨平台机器学习框架ML.NET。ML.NET将允许.NET开发人员开发他们自己的模型,并将自定义ML集成到他们的应用程序中,而无需事先掌握开发或调整机器学习模型的专业知识。在采用通用机... 查看详情

初识机器学习-理论篇(慕课笔记)

什么是机器学习 定义:利用计算机从历史数据中找出规律,并把这些规律用到对未来不确定场景的决策。从数据中寻找规律寻找规律:概率学统计学统计学方法:抽样->统计->假设检验随着计算机处理能力增强->不需要... 查看详情

以❤️简单易懂❤️的语言带你搞懂有监督学习算法附python代码详解机器学习系列之knn篇(代码片段)

必须要看的前言本文风格:以❤️简单易懂❤️的语言带你彻底搞懂KNN,了解什么是有监督学习算法。认真看完这篇文章,彻底了解KNN、了解监督学习算法绝对是一样很简单的事情。注:本篇文章非常详细,... 查看详情

django学习系列(一.初识)(代码片段)

文章目录前言Django的安装虚拟环境的配置创建Django项目Django项目的目录结构项目文件关系图多重路由Django数据库的配置激活默认sqllite切换数据库(sql)数据库简单操作创建表CURD简单操作补充示图过程前言千呼万唤使出来告别... 查看详情

机器学习sklearn----初识kmeans(代码片段)

...结果展示KMeans中的predict方法总结概述KMeans是一种无监督学习的方法。他是一种分类算法。用于探索原始数据,将原始数据中相同属性的样本归为一类。这篇文章只讲KMeans的简单使用,关于评估结果好坏的内容, 查看详情

阿里云机器学习平台pai之分类实践(代码片段)

...感兴趣的小伙伴可以查看一下内容👇:hadoop专题:hadoop系列文章.spark专题:spark系列文章.阿里云系列:阿里云MaxComputerSQL学习之DDL.阿里云系列:阿里云MaxComputerSQL学习之DML.阿里云系列:阿里云Ma 查看详情

译使用ml.net进行机器学习-集群完整指南

...击上方“DotNetNB”关注公众号回复“1”获取开发者路线图学习分享 丨作者 / 郑 子 铭    这是DotNet NB 公众号的第205篇原创文章原文|NikolaM.Zivkovic翻译|郑子铭在之前的几篇文章中,我们探索了一些基本的机器学习算法。... 查看详情

用python+sklearn(机器学习)实现天气预报准备(代码片段)

用python+sklearn机器学习实现天气预报准备项目地址系列教程0.流程介绍1.环境搭建a.pythonb.涉及到的机器学习相关库sklearnpandaseabornjoblib2.寻找数据来源3.分析数据源网址规则4.分析页面规则项目地址github项目:PYWeatherReport系列教程... 查看详情

ml.net示例:目录

.../machinelearning-samplesML.NET示例ML.NET是一个跨平台的开源机器学习框架,使.NET开发人员使用机器学习变得很容易。在这个GitHub存储库中,我们提供了示例,这些示例将帮助您开始使用ML.NET,以及如何将ML.NET加入到现有的和新的.NET应... 查看详情

机器学习基础环境部署|机器学习系列(代码片段)

目录前言Anaconda安装使用conda配置python3.6环境Spyder配置与使用安装PyTorch总结前言本文主要是分享一下机器学习初期,基本的环境搭建。也适用于其他python工程化项目环境搭建。都差不多。Anaconda安装anaconda官方链接:Anaconda... 查看详情