如今,机器学习正变得越来越流行,并且已在广泛的行业以及我们的日常生活中使用。在本文中,我们将学习如何使用Microsoft ML.NET(机器学习.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在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开发机器学习应用程序的流程。接下来,我们将详细了解ML.NET组件。
现在,让我们看看Microsoft ML.NET的一些用途和特征。