.NET开发者也开发自己的机器学习模型:ML.NET的能与不能

Python的简洁性、易读性和可扩展性,使其慢慢建立了框架、丰富的工具组件以及研究的健康大生态。Python作为解释性语言,虽然跑的比谁都慢,但减少了开发者的工作量,以及对数据进行处理、分析以及预测的能力的显著提升(包括云计算提供的强大分布式运算能力,摩尔定律下每一个计算单元成本的持续降低,加之以神经网络为代表的深度学习算法的应用),使我们得到了超乎想象的人工智能,催生了庞大的用户群体和活跃社区,一瞬间似乎吃机器学习这口饭的码农们生死存亡都寄托在Python上。

但是,我们也越来越多的发现,新的框架和工具试图将机器学习功能引入现有的大型开发人员社区当中,比如.NET.Microsoft,慢慢引入机器学习基本组件和库,使.NET开发人员更容易上手机器学习。

此前微软宣布推出新版ML.NET,尝试为.NET开发人员构建机器学习应用提供更为便捷的体验,ML.NET最早的版本由MicrosoftResearch开发,提供C#和F#编程模型,能够创建包括训练和执行的机器学习模型,ML.NET的核心架构可以分为四个基本组成:

...

-DataTransforms:是机器学习工作流中启用数据集转换的组件,例如组合算法、分类器、特征工程、行键过滤器等等;

-Learners:是ML.NET中包含的基本机器学习模型,算法组合目前相对基础,但它仍旧涵盖一些基本的模型,如线性回归(linearregression)和K-均值聚类(K-means);

-Misc:这部分是构建机器学习(模型优化或正则化)所必须的实用功能,例如评估和校准等;

-Extensions:ML.NET充分利用深度学习库,例如TensorFlow,Accord.NET和Microsoft自己的CognitiveToolkit

-如何使用ML.NET-

使用ML.NET的第一步就是使用以下代码安装NuGet包:

接着就可以创建一个LearningPipeline实例了,它用于封装机器学习模型数据加载、特征化:

使用工作流,开始组装机器学习应用,很容易完成从文本文件加载数据:

数据和特征决定机器学习的上限,在大多数机器学习中,需要对数据进行预处理和清理,于是我们在工作流中添加另一个元素:

此时,我们可以选择我们将要使用的算法并适当配置超参数(hyperparameters):

调用Train训练模型,使用Evaluateroutine进行评估:

最后执行模型并评估结果:

如你所见,ML.NET为.NET开发人员提供了一个进入机器学习世界非常基础的切入点,但是与许多其他机器学习桥接模式一样,我们应该为使用ML.NET设置正确的约束。

-ML.NET的能见局限-

ML.NET是.NET开发人员开始开发基础机器学习应用的绝佳工具,但是这个框架同时具有一些较为明显的局限,我们在实际应用中遇到的许多机器学习场景都会变得非常不适用,在当前版本中,开发人员在使用ML.NET之前应该注意一些问题:

-对于初学者来说,算法库非常有限,这就减少了我们能在特定工作流上一些架构的可能性;

-Pipeline模型的易用让开发人员上手简单,但也是它的限制,因为大多数机器学习工作流几乎不遵循ML.NET的4步顺序;

-目前没有优化或正则化工具支持ML.NET,这也限制了它在实际应用中的可能;

-没有明确的编程模型可以扩展到更复杂的堆栈,例如CognitiveToolkit。

总的来说,ML.NET是为.NET开发人员和机器学习社区的桥接而努力,如果.NET社区接受ML.NET,那么新的框架就能成为机器学习生态中一个不错的选择,但目前要说ML.NET已成为有力的竞争者,还为时尚早了。

乌镇智库资讯推荐

关于区块链,有哪些不可忽视的安全问题?

IBM披露深度图像分类模型健壮性研究新进展:别一味追求高准确率!

THE END
1..NET下的机器学习入门篇dotnet机器学习ML.NET 使你能够在联机或脱机场景中将机器学习添加到 .NET 应用程序中。 借助此功能,可以使用应用程序的可用数据进行自动预测。 机器学习应用程序利用数据中的模式来进行预测,而不需要进行显式编程。 ML.NET能做什么 分类/类别划分 自动将客户反馈分为积极和消极两类 https://blog.csdn.net/iml6yu/article/details/121229836
2.让我们了解.NET让我们来了解 .NET 2021年10月12日 我们将一起演练使用 .NET 生成机器学习或“ML”模型的基本原理。 ML.NET 是一种适合 .NET 开发人员的开源跨平台机器学习,支持将自定义机器学习集成到 .NET 应用中。 有了 ML.NET,无需离开 .NET 生态系统,即可使用 C# 或 F# 创建自定义 ML 模型。 一起学习新内容、https://docs.microsoft.com/zh-cn/shows/lets-learn-dotnet/Machine-Learning?view=sql-server-ver15
3..NET中使用ML.NET进行机器学习模型训练与预测.NET 中使用 ML.NET 进行机器学习模型训练与预测 一、引言 在.NET 开发中,实现机器学习模型的训练与预测是一项重要且受到广泛关注的工作。ML.NET 是一个开源https://www.jianshu.com/p/bd590ad778df
4.使用.NET5体验大数据和机器学习微软发布了与 .NET 协作的大数据(.NET for Spark)和机器学习(http://ML.NET)工具,这些工具共同提供了富有成效的端到端体验。在本文中,我们将介绍 .NET for Spark、大数据、http://ML.NET和机器学习的基础知识,我们将研究其 API 和功能,向你展示如何开始构建和消费你自己的 Spark 作业和http://ML.NET模型https://zhuanlan.zhihu.com/p/425451952
5.Python机器学习从ResNet到DenseNet示例详解pythonPython机器学习从ResNet到DenseNet示例详解更新时间:2021年10月11日 10:42:33 作者:Supre_yuan ResNet极大地改变了如何参数化深层网络中函数的观点。稠密连接网络(DenseNet)在某种程度上是ResNet的逻辑扩展。让我们先从数学上了解下+ 目录 从ResNet到DenseNet 上图中,左边是ResNet,右边是DenseNet,它们在跨层上的https://www.jb51.net/article/224978.htm
6.跨平台机器学习:ML.NET架构及应用编程(跨平台机器学习:ML.NET架构《跨平台机器学习:ML.NET架构及应用编程》这本书以.NET开发者的视角,深入浅出地探讨了如何利用ML.NET这一强大的工具集,在.NET生态系统中实现跨平台的机器学习应用。而且就书中的内容案例来看,真的是深入浅出,很容易上手。书中首先系统地介绍了ML.NET的基本概念、架构优势以及它如何支持跨平台开发,这为读者建立https://book.douban.com/review/16092870/
7.C#也能做机器学习?基于.NET的AI智能应用市场还是一片“处女地在这样的背景下,SciSharp AI 开源社区应运而生,它打造一个基于 .NET 的机器学习生态,推出并开源了多个颇受欢迎的基于 .NET 的机器学习项目和工具,比如 TensorFlow.NET 就被谷歌列入 TensorFlow 官网,推荐给全球开发者。 SciSharp 是怎样的一个社区?它是如何构建一个基于 .NET 的机器学习生态?它在做的事情对开发https://cloud.tencent.com/developer/article/1528208
8.《跨平台机器学习:ML.NET架构及应用编程》简介书评当当四季图书专营店在线销售正版《跨平台机器学习:ML.NET架构及应用编程》。最新《跨平台机器学习:ML.NET架构及应用编程》简介、书评、试读、价格、图片等相关信息,尽在DangDang.com,网购《跨平台机器学习:ML.NET架构及应用编程》,就上当当四季图书专营店。http://product.dangdang.com/11603676284.html
9.机器学习框架ML.NET学习笔记9自动学习机器学习框架ML.NET学习笔记【9】自动学习 一、概述 本篇我们首先通过回归算法实现一个葡萄酒品质预测的程序,然后通过AutoML的方法再重新实现,通过对比两种实现方式来学习AutoML的应用。 首先数据集来自于竞赛网站kaggle.com的UCI Wine Quality Dataset数据集,http://shanyou.blog.51cto.com/363653/3267771
10.有哪些c#机器学习库–PingCode机器学习在当今的软件开发中扮演了重要的角色,而C#作为一门广泛使用的编程语言,在这一领域也有着不少的库来支持这种类型的技术实现。常见的C#机器学习库包括ML.NET、Accord.NET、AForge.NET、Encog、Numl等。这些库提供了丰富多样的算法和工具,使得开发者能够在.NET环境下进行复杂的机器学习任务。其中,ML.NET是由https://docs.pingcode.com/ask/188312.html
11.机器学习本课程作为人工智能专业方向的基础课程,介绍机器学习的基础知识,包括机器学习概述、模型的评估与选择,和机器学习的经典算法,主要包括KNN算法、线性回归、逻辑回归、决策树、朴素贝叶斯、支持向量机、集成学习等。本课程的算法介绍部分,采用统一的介绍流程,让学员对机器学习的各个算法有清晰的对比和了解更快的掌握算法知识https://www.educoder.net/paths/ijeknthr
12.2020年最值得收藏的60个AI开源工具语言&开发李冬梅Metaflow 是 Netflix 机器学习基础架构的关键部件,主要用于加速数据科学工作流的构建和部署,Netflix 希望通过开源 Metaflow 简化机器学习项目从原型阶段到生产阶段的过程,进而提高数据科学家的工作效率。在过去两年中,Metaflow 已在 Netflix 内部用于构建和管理从自然语言处理到运营研究的数百个数据科学项目。 https://www.infoq.cn/article/2uabiqaxicqifhqikeqw
13.写给程序员的机器学习入门(九)对象识别RCNN与Fast对象识别的应用范围比较广,例如人脸识别,车牌识别,自动驾驶等等都用到了对象识别的技术。对象识别是当今机器学习领域的一个前沿,2017 年研发出来的 Mask-RCNN 模型还可以检测对象的轮廓。 因为看上去越神奇的东西实现起来越难,对象识别模型相对于之前介绍的模型难度会高很多,请做好心理准备?。 对象https://www.flyai.com/article/879
14.Accord.NETMachineLearningFrameworkAccord.NET is a .NET machine learning framework combined with audio and image processing libraries completely written in C# ready to be used in commercial applications.http://www.accord-framework.net/
15.机器学习《机器学习》是计算机科学与人工智能的重要分支领域。本课程面向硕士研究生,系统性地教授机器学习(ML)的发展背景、主要理论、技术及其最新发展趋势,并开展课堂研讨充分调动学生学习主动性,使学生深入了解该领域的研究对未来社会发展的重要影响, 掌握机器学习的最新理论、方法的基本原理和初步应用,激发人工智能领域创新创业的https://i.study.uestc.edu.cn/06ML/menu/home