介绍

如今,机器学习正变得越来越流行,并且已在广泛的行业以及我们的日常生活中使用。在本文中,我们将学习如何使用Microsoft ML.NET(机器学习.NET)开发机器学习应用程序。如果我们具有机器学习,机器学习类型和算法的基础知识,那么对于我们来说选择合适的机器学习任务和模型来开发机器学习应用程序将变得更加容易。在本章中,我们将从以下内容开始:

  1. 机器学习简介
  2. 机器学习类型和算法简介
  3. 为什么机器学习越来越受欢迎
  4. Microsoft ML.NET简介
  5. ML.NET的特征

机器学习简介

机器学习是应用程序,它是人工智能(AI)的一部分,机器学习使用算法和统计技术自行训练系统,而无需使用任何明确的程序。机器学习用于自动训练系统并向我们提供系统预测结果。在用于训练和预测结果的机器学习中,我们需要提供大量数据。在机器学习2中,最常用的魔术词是ref:

  • 训练
  • 数据

为了了解训练和数据,让我们看一下我们的现实例子,当一个新生婴儿出生时,父母,老师和邻居将通过展示对象开始教孩子,我们可以说父母是第一次教婴儿通过展示一个苹果,他们会反复告诉婴儿这是一个苹果,并且苹果将变成红色,苹果的形状将像这样,这里的苹果是为孩子准备的数据,孩子的大脑被训练为苹果将​​变成红色,苹果将看起来像这样,苹果将提供不同种类的形状和颜色。一旦用该物体训练了婴儿的大脑,每当婴儿看到苹果物体时,他/她会立即告诉我们这是苹果。

就像第一次通过展示对象来训练婴儿一样,我们也会使用大量数据来训练机器以为我们预测并返回结果。为了训练机器,我们需要大量数据。通过向机器提供大量相关数据,机器将得到良好的培训,并且可以很好地为我们预测准确的结果。我们可以看到下面的图像作为数据示例,例如,在这里,让我们考虑我们训练机器来预测数量并显示结果。在这里,我们将数据用作图像,我们可以看到使用不同的字体创建了不同种类的数字2,并且这些数字也被手绘使用。所有这些数字2将通过数据提供给机器,并训练机器以预测结果。

再次,你们都会想知道训练以及我们如何训练机器,为此,在机器学习中,我们拥有机器学习任务和算法,正如我们对机器学习所了解的那样,我们无需显式编写任何程序,因为我们将使用机器学习算法来预测结果。现在,我们将了解几种机器学习类型和算法。

机器学习过程

在下图中,我们可以看到机器学习过程已得到解释,因为我们首先将数据提供给系统,然后选择适当的机器学习模型来训练系统。培训结束后,机器即可预测结果并将输出显示给外界。

机器学习类型和算法简介

在机器学习中,类型和算法非常重要,如果我们要开发机器学习应用程序,那么我们应该了解什么是机器学习类型,以及应该为我们的应用程序选择哪种类型和算法来训练和预测结果。本文主要针对将机器学习用于监督学习类型和无监督学习,我们将详细介绍以下两种主要的机器学习类型:

  • 监督学习
  • 无监督学习

我们将看到带有示例的有监督和无监督机器学习类型和算法。

从上图中,我们可以看到带有示例的少数机器学习类型和算法,比如每种机器学习类型和算法可以在哪种应用中使用。在本文中,我们将使用带回归和分类模型的监督学习以及带聚类模型的无监督类型。现在,让我们详细了解每种机器学习类型和算法。

监督学习

在监督学习中,计算机将获得标记的输入和所需的输出。首先,我们将看到一个为每个城市的房价使用的回归模型预测的示例,为此,我们将提供特定城市的所有房屋详细信息,包括城市名称,区域名称,房屋类型,楼层详细信息,房间和房屋租金。

在上图中,我们可以了解三种不同类型房屋的房屋信息,包括单人房、别墅类型和公寓类型以及房间数量,这并不是特定城市房屋的确切价格,而是全部示例住房类型和价格,以方便理解这些概念。从上图可以很容易地了解该城市特定区域的当前房价。该城市中所有房屋的城市名称、地区名称、房屋类型、楼层详细信息、房间数量和房屋租金信息的所有这些信息都将作为机器的输入,以预测房屋租金以供用户搜索。搜索房屋时,我们将输入以下信息:城市名称、区域名称、所需房间数,我们希望选择哪种类型的房屋,以及我们要寻找的房屋预算是多少?在这里,预算是我们搜索的关键关键字,而我们将在搜索中寻找的输出将是搜索结果的房屋租金。在这里,对于机器学习监督类型和回归模型,我们将把房租作为标记输入。我们使用所有输入和带标签的输入来训练机器。训练后,机器将使用回归算法预测结果,并为我们生成预测结果作为房租。

如果用户搜索Maura市和Annanagar地区3套公寓房的房屋租金,并将所有数据提供给机器,机器将预测结果并显示大约15000作为输出。在机器学习中,我们需要提供大量数据。

在监督学习中,将使用另一种模型作为分类模型。分类模型将用于邮件垃圾邮件检测和情绪预测。

无监督学习

在无监督学习中,计算机将获得输入而没有所需的输出。该模型的主要目的是在输入中找到结构。

在无监督学习中,我们有聚类模型。聚类模型可用于找到我们产品的客户细分的集群,我们可以说一个例子作为我们产品销售的客户细分。假设我们将“ABC”,“XYZ”和“123”作为三种不同的产品,并且我们在德里、孟买、加尔各答和钦奈这四个主要城市销售产品。我们将四个城市的三种产品的所有销售历史分组,并希望在这种情况下找到我们的产品集群,我们可以使用基于聚类模型的无监督学习。

为什么机器学习越来越受欢迎?

如今,机器学习已广泛应用于我们的日常生活,许多行业,研究领域,科学等领域。机器学习还用于使系统示例自动化,例如可以说邮件的垃圾邮件检测和欺诈检测。在当今的机器学习中,我们可以说以Facebook新闻提要为例,我们可以在Facebook墙上看到,因为我们将看到与经常访问或最近访问的朋友帖子相关的所有新闻提要。Facebook正在将机器学习概念用于新闻提要。如今,机器学习还被广泛用于制造业,医疗保健,金融服务,旅游,零售等行业。机器学习还被用于制造无人驾驶汽车(即自动驾驶汽车)。在自动驾驶汽车中传感器用于识别将要在四个方向上靠得更近的物体,具体取决于将控制车速的物体,并且还使用导航将自动驾驶汽车驶向目的地。在导航中,所有信息都将存储为交通地点和当前交通信号灯。对于自动驾驶汽车,将使用机器学习概念强化学习类型。机器学习现在也广泛用于研究和医学领域,例如,预测艾滋病病毒衰竭,帕金森病进展预测,智能农业,药物开发生物技术,药物治疗,用于宇宙地图上等。

未来,机器学习将在所有领域中得到广泛应用,并且它将比今天更加流行。

我们已经了解了如今机器学习越来越流行的方式和原因,微软还在2018年3月的Build2018中引入了一个名为ML.NET的新框架。ML.NET代表Machine Learning.Net,该机器学习使用.NET开发机器学习应用程序——我们将在接下来的章节中看到有关ML.NET的更多详细信息。

Microsoft ML.NET简介

Microsoft在Build 2018(3月)期间引入了ML.NET(Machine Learning.NET)。ML.NET的当前版本是ML.NET预览版1.4,该版本于2019年9月发布。Machine Learning.Net是一个跨平台的开源框架。是的,现在很容易开发自己的机器学习应用程序或使用机器学习框架开发自定义模块。对于所有.NET爱好者来说,这是个好消息,因为我们可以使用C#或F#代码通过ML.NET开发机器学习。ML.NET是开源的,可以在Windows,Linux和macOS上开发和运行。我们可以使用ML.NET为控制台,台式机,Web,移动设备,游戏以及IOT开发自定义机器学习模型。ML.NET还支持扩展和使用TensorFlow,Accord.NET和CNTK.ML。最新版本的.NET还支持从关系数据库(如SQL Server,Oracle,MySQL等)加载和训练数据。最新版本的ML.NET也是为了使用AutoML开发轻松的自定义ML而建立的。

当前,Microsoft已发布ML.NET的预览版,并且Microsoft一直在向ML.NET框架添加更多功能,而ML.NET的当前版本是ML.NET 1.4。

在开始使用ML.NET之前,让我们了解ML.NET的基本概念,该基本概念需要用于开发我们的机器学习应用程序。

  • 加载数据:为了完美预测结果,我们需要提供大量数据来训练模型。在ML.Net中,我们可以通过的文本数据(CSV / TSV,关系数据库(现在支持SQL Server,Oracle,MySQL等)), Binary,IEnumerable等来提供训练和测试的数据。
  • 训练:我们需要根据需要选择正确的算法来训练模型,我们需要选择正确的算法来训练和预测结果。
  • 评估:为我们的模型训练和预测选择机器学习类型。如果需要使用细分,则可以选择聚类模型,如果需要找到股票预测的价格,则可以选择回归,如果需要找到情感分析,则可以选择分类模型。
  • 预测结果:基于训练模型的训练和测试数据,将使用ML.NET应用程序显示最终预测。经过训练的模型将被保存为二进制格式,其也可以与我们的其他.NET应用程序集成。

上图说明了使用ML.NET开发机器学习应用程序的流程。接下来,我们将详细了解ML.NET组件。

ML.NET的特征

现在,让我们看看Microsoft ML.NET的一些用途和特征。

  • 所有的DotNet爱好者都可以使用ML.NET编写用于机器学习的代码。
  • 您可以使用C#或F#与ML.NET进行编码。
  • ML.NET是跨平台的开放源代码框架。
  • ML.NET可以在Windows,Linux和macOS上开发和运行。
  • 在Microsoft Windows,Bing,Azure中广泛使用,还可以扩展到TensorFlow,CNTK和Accord.NET等其他框架。
  • ML.NET支持开发用于Web,移动,桌面,游戏和IOT的机器学习应用程序。
  • ML.NET将训练后的模型保存为二进制文件,并且可以将其集成到任何其他DotNet应用程序中。
  • ML.NET现在处于预览版本,Microsoft经常添加许多新功能,并且还计划使用TensorFlow和CNTK添加深度学习。
  • ML.NET预览版0.2引入了新的机器学习群集任务。
  • ML.NET预览版0.5添加了TensorFlow模型评分转换。
  • ML.NET预览版0.6添加了对预先训练的ONNX模型进行评分的功能。
  • 现在从ML.NET 0.7版本开始,它同时支持x86和x64。ML.NET现在处于预览版本,Microsoft经常通过向ML.NET添加更多功能来更新该版本。以前的ML.NET 0.7版本仅支持为x64开发,而从新的ML.NET 0.7版本开始支持为x86和x64开发。
  • ML.NET预览版0.7在称为NimbusML的ML.NET实验Python绑定中提供支持。
  • ML.NET预览版0.7启用了异常检测方案。
  • ML.NET预览版0.9添加了ML.NET API的一些改进。
  • ML.NET 1.0已添加到自动机器学习(AutoML)中,并引入了更多新工具,例如ML.NET CLI和ML.NET Model Builder。
  • ML.NET 1.1已发布,具有对IDataView中内存中图像类型的改进支持,还添加了新算法“异常检测”算法。
  • ML.NET 1.2已发布,支持通过Microsoft.Extensions.ML集成程序包将ML.NET模型集成到Web或无服务器应用程序中
  • ML.NET预览版1.4数据库加载程序使使用关系数据库的培训变得容易。

参考链接

  • https://docs.microsoft.com/zh-CN/dotnet/machine-learning/
  • https://dotnet.microsoft.com/apps/machinelearning-ai/ml-dotnet

机器学习和ML.NET简介-第1部分相关推荐

  1. Py之scikit-learn:机器学习Sklearn库的简介、安装、使用方法(ML算法如何选择)、代码实现之详细攻略

    Py之scikit-learn:机器学习Sklearn库的简介.安装.使用方法.代码实现之详细攻略 目录 scikit-learn的简介 scikit-learn的安装 scikit-learn的使用 ...

  2. Py之scikit-learn:机器学习sklearn库的简介、六大基本功能介绍(数据预处理/数据降维/模型选择/分类/回归/聚类)、安装、使用方法(实际问题中如何选择最合适的机器学习算法)之详细攻略

    Py之scikit-learn:机器学习sklearn库的简介(组件/版本迭代).六大基本功能介绍(数据预处理/数据降维/模型选择/分类/回归/聚类).安装.使用方法(实际问题中如何选择最合适的机器学 ...

  3. 科普贴开篇:到底什么是人工智能(AI)、机器学习(ML)和深度学习(DL

    [https://zhuanlan.zhihu.com/p/26442277] 科普贴开篇:到底什么是人工智能(AI).机器学习(ML)和深度学习(DL) 优雅的程序员 9 个月前 这两年创业圈.技术 ...

  4. Interview之AI:人工智能领域岗位求职面试—人工智能算法工程师知识框架及课程大纲(AI基础之数学基础/数据结构与算法/编程学习基础、ML算法简介、DL算法简介)来理解技术交互流程

    Interview之AI:人工智能领域岗位求职面试-人工智能算法工程师知识框架及课程大纲(AI基础之数学基础/数据结构与算法/编程学习基础.ML算法简介.DL算法简介)来理解技术交互流程 目录 一.A ...

  5. 诗人般的机器学习,ML工作原理大揭秘

    诗人般的机器学习,ML工作原理大揭秘 https://www.cnblogs.com/DicksonJYL/p/9698208.html 选自arXiv 作者:Cassie Kozyrkov 机器之心 ...

  6. Java机器学习库ML之六关于模型迭代训练的思考

    我遇到的场景是:样本集有5000万条,接近5个G,那么这样的样本集一次导入训练,我放着一天一夜都没跑出结果,机器性能还特别好,是64位linux有128G内存. 针对这样的情况,我想到的是两种思路: ...

  7. Java机器学习库ML之一Dataset和Instance

    Java机器学习库ML官网:http://java-ml.sourceforge.net/ 对于一个机器学习库来说,最基础就是数据处理能力,ml库给了dataset和instance两个类,datas ...

  8. 以人为本的机器学习:谷歌人工智能产品设计概述 By 机器之心2017年7月17日 12:13 取代了手动编程,机器学习(ML)是一种帮助计算机发现数据中的模式和关系的科学。对于创建个人的和动态的经历

    以人为本的机器学习:谷歌人工智能产品设计概述 By 机器之心2017年7月17日 12:13 取代了手动编程,机器学习(ML)是一种帮助计算机发现数据中的模式和关系的科学.对于创建个人的和动态的经历来 ...

  9. 深度学习笔记第三门课 结构化机器学习项目 第一周 机器学习(ML)策略(1)...

    本文是吴恩达老师的深度学习课程[1]笔记部分. 作者:黄海广[2] 主要编写人员:黄海广.林兴木(第四所有底稿,第五课第一二周,第三周前三节).祝彦森:(第三课所有底稿).贺志尧(第五课第三周底稿). ...

最新文章

  1. 灵魂出窍的神经生物学基础!
  2. Java中常用的类及其特点
  3. python javascript配合,在python部署时组合javascript文件
  4. c语言不用switch做计算器,超级新手,用switch写了个计算器程序,求指导
  5. 使用dokcer搭建个人博客网站
  6. 【数值分析】迭代法解方程:牛顿迭代法、Jacobi迭代法
  7. 大型web系统数据缓存设计-l转载
  8. 大话设计模式(六 关于Flex的争论)
  9. 基于matlab的捷联惯导算法设计及仿真,基于 Matlab 的捷联惯导算法设计及仿真1doc.doc...
  10. 3+1保障:高可用系统稳定性是如何炼成的?
  11. rgb 灰色_金属+RGB+无线,我要买爆这款海盗船VIRTUOSO鉴赏家游戏耳机
  12. android md5使用方法,android 使用DigestUtilsmd5加密的方法
  13. JMeter中BeanShell的使用方法和常用语法
  14. 大数据分析平台架构(Big Data Analytics Platform)
  15. wex5使用java语言_WeX5学习笔记之调用后端服务
  16. 随机产生一个五位数以内的数
  17. Excel公式笔记(COUNTIFS)
  18. 浅析deep深度选择器
  19. 151202storyboard中, 设置子控件和父控件的高宽比
  20. 用python画几个东西怎么画_一步一步教你如何用Python画一个滑稽

热门文章

  1. 稀缺高品质静物场景空间海报|艺术拍摄
  2. 美妆海报模板|来点创意的海报设计(立体剪纸风格)
  3. oracle外部表kup-04023,Oracle外部表学习
  4. C++设计模式详解之模板模式解析
  5. SVGA转html最快方法(使用Python直接转)
  6. CentOS7 搭建基于DPDK的FD.io VPP环境-1
  7. C语言实现ICMP协议,并进行PING测试
  8. Overview of GTK+ and its Libraries
  9. ncurses其他特性:curs_set(),离开curses模式,ACS_扩展字符集,扩展库
  10. OpenCV学习笔记:基础结构