当前位置:网站首页>ML.NET相关资源整理
ML.NET相关资源整理
2022-07-31 15:27:00 【dotNET跨平台】
在人工智能领域,无论是机器学习,还是深度学习等,Python编程语言都是绝对的主流,尽管底层都是C++实现的,似乎人工智能和C#/F#编程语言没什么关系。在人工智能的工程实现,通常都是将Python训练好的人工智能模型封装为REST API,以供其它的系统调用。虽然C#也确实天生就不合适搞人工智能的训练等,但是通过ML.NET这个开放源代码的跨平台机器学习框架,可以很容易的将人工智能集成到Web、移动、桌面、游戏和物联网应用中。这篇文章主要总结ML.NET的相关学习资源。
一.ML.NET模型生成器和CLI
什么是机器学习呢?它的本质就是发现数据中的模式,模式以模型为载体,从而预测新的数据。通常会经过模型的选择,数据的清洗,数据的加载,模型训练,模型评估,模型测试,模型部署等几个阶段。但是,根据实际情况选择合适的模型,以及对数据的清洗都很是需要经验的。
1.ML.NET模型生成器
模型生成器(Model Builder)算是一个低代码的机器学习平台,可以通过图形界面实现数据加载、模型训练、模型评估和模型部署等功能,并且还支持强大的AutoML,从而可以获得最适合解决方案的模型。相当于是极大的降低了人工智能模型的训练门槛。
2.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
LinearSvmTrainer2.多类分类任务
多类分类是有监督学习,顾名思义就是有多个类别的分类任务。训练器如下:
LightGbmMulticlassTrainer
SdcaMaximumEntropyMulticlassTrainer
SdcaNonCalibratedMulticlassTrainer
LbfgsMaximumEntropyMulticlassTrainer
NaiveBayesMulticlassTrainer
OneVersusAllTrainer
PairwiseCouplingTrainer3.回归测试任务
回归就是从一组相关特征中预测标签值。训练器如下:
LbfgsPoissonRegressionTrainer
LightGbmRegressionTrainer
SdcaRegressionTrainer
OlsTrainer
OnlineGradientDescentTrainer
FastTreeRegressionTrainer
FastTreeTweedieTrainer
FastForestRegressionTrainer
GamRegressionTrainer4.聚类分析任务
聚类分析是无监督学习,简单理解就是从没有标签的数据中心,发现数据的模式种类。训练器如下:
KMeansTrainer5.异常检测任务
异常检测就是对罕见事件的预测,比如地震预测等。训练器如下:
RandomizedPcaTrainer6.排序任务
排序就是对数据记录进行排名,比如看到的搜索引擎中的搜索条目。训练器如下:
LightGbmRankingTrainer
FastTreeRankingTrainer7.推荐任务
就是推荐算法,比如推荐User、Item和Tag等,在电商、社交、短视频中等都有广泛的应用。训练器如下:
MatrixFactorizationTrainer8.预测任务
使用过去的时序数据来预测将来的行为。比如,天气预测、季节性销售预测和预测维护等。训练器如下:
ForecastBySsa9.图像分类任务
图像分类是有监督学习,就是从有标记的图像中训练模型,然后预测图像的类别。训练器如下:
ImageClassificationTrainer10.物体检测任务
就是图片对象的检测,比如车牌、行人、红绿灯等。不过目前对象检测模型训练仅适用于使用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)
边栏推荐
- TRACE32 - SNOOPer-based variable logging
- 安装Xshell并使用其进行Ymodem协议的串口传输
- 模板与泛型编程值typelist实现
- Vb how to connect mysql_vb how to connect to the database collection "advice"
- 力扣:56. 合并区间
- 如何进行需求分析评审
- R语言ggstatsplot包ggbarstats函数可视化条形图、并添加假设检验结果(包含样本数、统计量、效应大小及其置信区间、显著性、组间两两比较、贝叶斯假设)、检验结果报告符合APA标准
- DBeaver连接MySQL 8.x时Public Key Retrieval is not allowed 错误解决
- Gorm—Go语言数据库框架
- RecyclerView的高效使用第一节
猜你喜欢

使用 Chainlink Keepers 实现智能合约函数的自动化执行

leetcode303 Weekly Match Replay

名创优品斥资6.95亿购买创始人叶国富所持办公楼股权

大健云仓冲刺美股:增营收反减利润 京东与DCM是股东

女性服务社群产品设计

Excel快速对齐表格的中姓名(两个字姓名和三个字姓名对齐)

mongo enters error

WPF项目--控件入门基础用法,必知必会XAML

DBeaver连接MySQL 8.x时Public Key Retrieval is not allowed 错误解决
![[MySQL] Mysql paradigm and the role of foreign keys](/img/9d/a4295de26683d7bca2b8e9d14f754b.png)
[MySQL] Mysql paradigm and the role of foreign keys
随机推荐
R language test whether the sample conforms to normality (test whether the sample comes from a normally distributed population): shapiro.test function tests whether the sample conforms to the normal d
mongo进入报错
Internet banking stolen?This article tells you how to use online banking safely
R语言检验样本是否符合正态性(检验样本是否来自一个正态分布总体):shapiro.test函数检验样本是否符合正态分布(normality test)
STM32(十)------- SPI通信
border控件的使用
Codeforces Round #796 (Div. 2) (A-D)
Synchronized和volatile 面试简单汇总
The R language ggstatsplot package ggbarstats function visualizes bar charts, and adds hypothesis test results (including sample number, statistics, effect size and its confidence interval, significan
TRACE32——基于SNOOPer的变量记录
Female service community product design
R语言ggplot2可视化:使用ggpubr包的ggmaplot函数可视化MA图(MA-plot)、font.legend参数和font.main参数设置标题和图例字体加粗
Kubernetes常用命令
R语言计算时间序列数据的移动平均值(滚动平均值、例如5日均线、10日均线等):使用zoo包中的rollmean函数计算k个周期移动平均值
Tencent Cloud Deployment----DevOps
TRACE32 - C source code association
Codeforces Round #796 (Div. 2)(A-D)
网银被盗?这篇文章告诉你如何安全使用网银
双边滤波加速「建议收藏」
安装Xshell并使用其进行Ymodem协议的串口传输