ML.NET相关资源整理

  在人工智能领域,无论是机器学习,还是深度学习等,Python编程语言都是绝对的主流,尽管底层都是C++实现的,似乎人工智能和C#/F#编程语言没什么关系。在人工智能的工程实现,通常都是将Python训练好的人工智能模型封装为REST API,以供其它的系统调用。虽然C#也确实天生就不合适搞人工智能的训练等,但是通过ML.NET这个开放源代码的跨平台机器学习框架,可以很容易的将人工智能集成到Web、移动、桌面、游戏和物联网应用中。这篇文章主要总结ML.NET的相关学习资源。

一.ML.NET模型生成器和CLI

  什么是机器学习呢?它的本质就是发现数据中的模式,模式以模型为载体,从而预测新的数据。通常会经过模型的选择,数据的清洗,数据的加载,模型训练,模型评估,模型测试,模型部署等几个阶段。但是,根据实际情况选择合适的模型,以及对数据的清洗都很是需要经验的。
1.ML.NET模型生成器
  模型生成器(Model Builder)算是一个低代码的机器学习平台,可以通过图形界面实现数据加载、模型训练、模型评估和模型部署等功能,并且还支持强大的AutoML,从而可以获得最适合解决方案的模型。相当于是极大的降低了人工智能模型的训练门槛。60294ea5233443922f493bcb25135fdf.gif2.ML.NET CLI
  除了模型生成器外,还提供了ML.NET CLI这个.NET Core工具。可为其指定一个机器学习任务和一个训练数据集,而它将生成一个ML.NET模型以及要运行的C#代码,以便在应用程序中使用该模型。

二.ML.NET中的机器学习任务

1.二元分类任务
二元分类是有监督学习,顾名思义就是有2个类别的分类任务。训练器如下:

AveragedPerceptronTrainer
SdcaLogisticRegressionBinaryTrainer
SdcaNonCalibratedBinaryTrainer
SymbolicSgdLogisticRegressionBinaryTrainer
LbfgsLogisticRegressionBinaryTrainer
LightGbmBinaryTrainer
FastTreeBinaryTrainer
FastForestBinaryTrainer
GamBinaryTrainer
FieldAwareFactorizationMachineTrainer
PriorTrainer
LinearSvmTrainer

2.多类分类任务
多类分类是有监督学习,顾名思义就是有多个类别的分类任务。训练器如下:

LightGbmMulticlassTrainer
SdcaMaximumEntropyMulticlassTrainer
SdcaNonCalibratedMulticlassTrainer
LbfgsMaximumEntropyMulticlassTrainer
NaiveBayesMulticlassTrainer
OneVersusAllTrainer
PairwiseCouplingTrainer

3.回归测试任务
回归就是从一组相关特征中预测标签值。训练器如下:

LbfgsPoissonRegressionTrainer
LightGbmRegressionTrainer
SdcaRegressionTrainer
OlsTrainer
OnlineGradientDescentTrainer
FastTreeRegressionTrainer
FastTreeTweedieTrainer
FastForestRegressionTrainer
GamRegressionTrainer

4.聚类分析任务
聚类分析是无监督学习,简单理解就是从没有标签的数据中心,发现数据的模式种类。训练器如下:

KMeansTrainer

5.异常检测任务
异常检测就是对罕见事件的预测,比如地震预测等。训练器如下:

RandomizedPcaTrainer

6.排序任务
排序就是对数据记录进行排名,比如看到的搜索引擎中的搜索条目。训练器如下:

LightGbmRankingTrainer
FastTreeRankingTrainer

7.推荐任务
就是推荐算法,比如推荐User、Item和Tag等,在电商、社交、短视频中等都有广泛的应用。训练器如下:

MatrixFactorizationTrainer

8.预测任务
使用过去的时序数据来预测将来的行为。比如,天气预测、季节性销售预测和预测维护等。训练器如下:

ForecastBySsa

9.图像分类任务
图像分类是有监督学习,就是从有标记的图像中训练模型,然后预测图像的类别。训练器如下:

ImageClassificationTrainer

10.物体检测任务
就是图片对象的检测,比如车牌、行人、红绿灯等。不过目前对象检测模型训练仅适用于使用Azure机器学习的Model Builder。

三.ML.NET API v1.7.0[1]

1.Microsoft.Extensions.MLNamespace
解析:用于扩展ML.NET API的实用工具,包括预测引擎池。

2.Microsoft.MLNamespace
解析:ML.NET的主命名空间。包含应用程序和操作上下文、转换器和训练器目录以及用于数据视图处理的组件。

3.Microsoft.ML.CalibratorsNamespace
解析:包含用于二元分类校准的组件的命名空间。

4.Microsoft.ML.DataNamespace
解析:包含数据加载和保存、数据架构定义和模型训练指标组件的命名空间。

5.Microsoft.ML.RuntimeNamespace
解析:包含ML.NET运行时所需的类型的命名空间。

6.Microsoft.ML.TimeSeriesNamespace
解析:包含时间序列相关模型的命名空间。

7.Microsoft.ML.TrainersNamespace
解析:包含训练程序、模型参数和实用工具的命名空间。

8.Microsoft.ML.Trainers.FastTreeNamespace
解析:包含快速树算法的训练程序、模型参数和实用工具的命名空间。

9.Microsoft.ML.Trainers.LightGbmNamespace
解析:包含LightGBM算法的训练程序、模型参数和实用工具的命名空间。

10.Microsoft.ML.TransformsNamespace
解析:包含数据转换组件的命名空间。

11.Microsoft.ML.Transforms.ImageNamespace
解析:包含图像加载和转换组件的命名空间。

12.Microsoft.ML.Transforms.OnnxNamespace
解析:包含ONNX模型加载和转换组件的命名空间。

13.Microsoft.ML.Transforms.TextNamespace
解析:包含文本数据转换组件的命名空间。

14.Microsoft.ML.Transforms.TimeSeriesNamespace
解析:包含时序数据转换组件的命名空间。

15.Microsoft.ML.VisionNamespace
解析:包含图像分类组件的命名空间。

四.ML.NET官方例子

1.情绪分析
解析:演示如何使用ML.NET应用二元分类任务。

2.GitHub问题分类
解析:演示如何使用ML.NET应用多类分类任务。

3.价格预测器
解析:演示如何使用ML.NET应用回归任务。

4.Iris聚类分析
解析:演示如何使用ML.NET应用聚类分析任务。

5.推荐
解析:根据以前的用户评级生成影片推荐

6.图像分类
解析:展示了如何将现有TensorFlow模型重新训练为使用ML.NET创建自定义图像分类器。

7.异常检测
解析:演示如何构建针对产品销售数据分析的异常检测应用程序。

8.检测图像中的对象
解析:演示如何使用预先训练的ONNX模型检测图像中的对象。

9.对电影评论的情绪分类
解析:了解加载预训练的TensorFlow模型,对电影评论的情绪分类。

五.F#编程语言

  最后再提下F#编程语言,C#语言就不用说了,F#是C#的同门师兄弟了,并且极其擅长算法和并行编程,关键是可以无缝访问所有的第三方.NET库和工具。不过遗憾的是,可能F#太高端了,在我的周围没有见过一个人使用,但是并不能否定F#是一门优秀的编程语言。
  在ML.NET中,不仅可以使用C#编程语言,还可以使用F#编程语言,但是F#的语法还是比较复杂的,可参考的资料[11][12][13]也很少。网上就找到了一本中文的F#书籍《F#语言程序设计》[17],其它的基本都是英文的。如果感兴趣可以下载,尝试下F#编程语言,说不定会有新的惊喜。接下来计划对ML.NET做一个系列的讲解,但是更新不会太快。

参考文献:
[1]ML.NET API参考:https://docs.microsoft.com/zh-cn/dotnet/api/
[2]ML.NET文档:https://docs.microsoft.com/zh-cn/dotnet/machine-learning/
[3]ML.NET教程:https://docs.microsoft.com/zh-cn/dotnet/machine-learning/tutorials/
[4]dotnet/machinelearning-samples:https://github.com/dotnet/machinelearning-samples
[5]SciSharp STACK:https://github.com/SciSharp
[6]SciSharp/TensorFlow.NET:https://github.com/SciSharp/TensorFlow.NET
[7]Azure机器学习文档:https://docs.microsoft.com/zh-cn/azure/machine-learning/
[8]Azure认知服务文档:https://docs.microsoft.com/zh-cn/azure/cognitive-services/
[9].NET for Apache Spark文档:https://docs.microsoft.com/zh-cn/dotnet/spark/
[10].NET文档:https://docs.microsoft.com/zh-cn/dotnet/
[11]FsLab:https://fslab.org/tutorials.html
[12]F#文档:https://docs.microsoft.com/zh-cn/dotnet/fsharp/
[13]F#软件基金:https://fsharp.org/
[14]Q&A ML.NET:https://docs.microsoft.com/en-us/answers/topics/dotnet-mlnet.html
[15]Machine Learning at Microsoft with ML.NET:https://arxiv.org/pdf/1905.05715.pdf
[16]机器学习重要术语词汇表:https://docs.microsoft.com/zh-cn/dotnet/machine-learning/resources/glossary
[17]《F#语言程序设计》:https://url39.ctfile.com/f/2501739-627693806-97f8da?p=2096 (访问密码: 2096)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/284205.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA学习日志(7-1-继承)

为什么80%的码农都做不了架构师?>>> 继承 1.提高代码复用性 2.让类与类之间产生关系,有了这个关系才有了多态的特性 **不要为了获取其他类的功能,简化代码而继承, 必须是类与类之间有所属关系才可以继承,所…

BZOJ 1370: [Baltic2003]Gang团伙 [并查集 拆点 | 种类并查集WA]

题意: 朋友的朋友是朋友,敌人的敌人是朋友;朋友形成团伙,求最多有多少团伙 种类并查集WA了一节课,原因是,只有那两种关系才成立,诸如朋友的敌人是朋友之类的都不成立! 所以拆点做吧 …

常见Lidar点云数据处理及可视化软件汇总

常见的点云处理及可视化软件有: CloudCompare、Globalmapper、Pix4d、ArcGIS(Pro)、Lidar 360、PCL等等。 文章目录1. CloudCompare2. Globalmapper3. Pix4d4. ArcGIS(Pro)5. Lidar 3606. PCL1. CloudCompare CloudCo…

基于 HTML5 Canvas 绘制的电信网络拓扑图

电信网结构(telecommunication network structure)是指电信网各种网路单元按技术要求和经济原则进行组合配置的组合逻辑和配置形式。组合逻辑描述网路功能的体系结构,配置形式描述网路单元的邻接关系,即以交换中心(或节…

【GlobalMapper精品教程】021:利用控制点校正栅格图像

本文讲解GlobalMapper中利用控制点校正栅格图像的方法,数据为配套实验数据包中的data021.rar。 文章目录 一、结果预览二、校正过程【推荐阅读】:ArcGIS实验教程——实验二:ArcGIS地理配准完整操作步骤 一、结果预览 二、校正过程 (1)打开图像。选择实验包中的待校正的栅…

WTM:ASP.NET Core快速开发利器!

不少程序员朋友应该都有这个想法,接接私活,赚赚外快,但是从零开发一套系统并不容易,今天给大家推荐一款开箱即用的通用后台管理系统。一个能够让程序猿快速开发的炒鸡脚手架,采用.NET Core开源框架!github地…

【CloudCompare教程】002:点云绘制模式详解

文章目录 1. 按高程着色2. 按索引着色3. 按渐变着色1. 按高程着色 在内容列表中选中点云图层,点击【编辑】→【标量领域】→【将坐标导出到SF】。 勾选Z,点击OK。 高程着色效果: 2. 按索引着色 点击【编辑】→【标量领域】→【添加点指数为SF】。 索引着色效果:

《首席产品官》成海清 著 图书目录 思维导图

原文档地址:《首席产品官》成海清

「每天一道面试题」如何理解方法的重载与覆盖?

方法重载在同一个Java 类中(包含父类),如果出现了方法名称相同,而参数列表不同的情况就叫做重载。方法的重载的规则:(1):方法名称必须相同(2):参数…

day63-webservice 01.cxf介绍

CXF功能就比较强了。CXF支持soap1.2。CXF和Spring整合的非常密切。它的配置文件基本就是Spring的配置文件了。CXF是要部署在服务器才能用的。CXF得放到Web容器里面去发布。CXF就可以整合咱们的Web容器。 cxf-2.4.0解压出来之后 apache-cxf-2.4.2是核心包,apache-cxf-2.4.4-src是…

Java中的static关键字解析

static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一。下面就先讲述一下static关键字的用法和平常容易误解的地方,最后列举了一些面试笔试中常见的关于static的考题。以下是…

微信公众号授权登录后报redirect_uri参数错误的问题

在进行微信公众号二次开发的时候,需要通过授权码模式来进行微信授权。比如,在进行登录的时候,用户点击了登录按钮,然后弹出一个授权框,用户点击同意后,就可以获取用户的OpenId等信息了。这篇文章主要分享下…

【GlobalMapper精品教程】022:根据一个字段属性值批量计算另一个字段属性值(地类名称求地类编码)

项目中通常需要根据一个字段属性值的不同,批量计算另一个字段属性值(如根据地类名称求地类编码),根据权属地物名称给权属地物编码批量赋值等,本文讲解在属性表中根据代码批量实现方法。 参考阅读: 【ArcGIS风暴】ArcGIS 10.2字段计算器(Field Calculator)批量条件赋值用…

[转]【读书笔记】《俞军产品方法论》——产品经理的枕边书

作者简介 俞军,1997年毕业于同济大学化学系。曾任百度产品副总裁、首席产品架构师,网名“搜索引擎9238”,有“百度贴吧之父”之称。滴滴前高级产品副总裁。 内容简介 摘抄语录 我的产品潜力和优势大约只来自三方面:第一&#xff0…

linux批量分发必会面试题,通过邮件反馈结果。

请准备三台linux机器为别为A,B,C,要求实现以下内容1、用自己的名字用户完成一把钥匙开多把锁(A,钥匙,B,C锁)的免密码登录部署场景该题在生产环境中的用途为;批量分发数据,批量发布程序代码,批量…

【GlobalMapper精品教程】023:Excel数据通过相同字段连接到属性表中(气温降水连接到气象台站)

globalmapper中也可以将Excel数据通过相同字段连接到属性表中。本文讲解将气温降水连接到气象台站点图层中。 文章目录 一、加载气象台站数据二、挂接气温降水数据一、加载气象台站数据 globalmapper中根据坐标生成点的方法,前面的文章有所说明: 【GlobalMapper精品教程】0…

记一次 .NET 某智慧物流WCS系统CPU爆高分析

一:背景 1. 讲故事哈哈,再次见到物流类软件,上个月有位朋友找到我,说他的程序出现了 CPU 爆高,让我帮忙看下什么原因,由于那段时间在苦心研究 C,分析和经验分享也就懈怠了,今天就给大…

采用Atlas+Keepalived实现MySQL读写分离、读负载均衡【转载】

文章 原始出处 :http://sofar.blog.51cto.com/353572/1601552 一、基础介绍 1、背景描述 目前我们的高可用DB的代理层采用的是360开源的Atlas,从上线以来,已稳定运行2个多月。无论是从性能上,还是稳定性上,相比其他开…

vscode搭建go开发环境

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、安装goLang二.配置环境变量三、vscode安装插件四.安装golang依赖五.新建go文件前言 能用golang就用golang..这配置很麻烦 提示:以下是本篇文章正…