当前位置:科学 > 正文

热讯:第一章 机器学习简介

2023-01-30 22:55:51  来源:涛哥的医学与生信之旅

本章内容包括:

什么是机器学习有监督机器学习和无监督机器学习的区别分类、回归、降维和聚类的区别我们为什么使用R我们将使用哪些数据集

无论你是否认识到它,你每天都在与机器学习互动。你在网上看到的广告是你更有可能购买的产品,基于你以前购买过或看过的东西。您上传到社交媒体平台的照片中的人脸会被自动识别和标记。您汽车的GPS可以预测在一天中的特定时间哪些路线最繁忙,并重新绘制您的路线,以尽量缩短行程长度。您的电子邮件客户端会逐步了解哪些电子邮件是您想要的,哪些是您认为是垃圾邮件的,以使您的收件箱不那么混乱,您的家庭个人助理可以识别您的语音并响应您的请求。从像这样对我们日常生活的微小改善,到自动驾驶汽车、机器人手术和其他类地行星自动扫描等改变社会的重大想法,机器学习已经成为现代生活中越来越重要的一部分。

但有件事我希望你马上明白:机器学习不仅仅是大型科技公司或计算机科学家的领域。任何人都可以在工作中实现机器学习。如果你是一名科学家,机器学习可以让你对你正在研究的现象有非凡的洞察力。如果你是一名记者,它可以帮助你理解数据中的模式,从而描绘出你的故事。如果你是一名商人,机器学习可以帮助你锁定合适的客户,并预测哪些产品会卖得最好。如果你有疑问或问题,并且有足够的数据来回答它,机器学习可以帮助你做到这一点。


(资料图片仅供参考)

尽管阅读本书后,你不会像谷歌和Deep Mind那样造出智能汽车或会说话的机器人,但你将掌握一些技能,能够做出强有力的预测,并识别数据中的信息模式。

我将教你们机器学习的理论和实践,任何一个对R有基本了解的人都可以理解。从高中开始,我的数学就很糟糕,所以我也不指望你会很好。虽然你将要学习的技术是基于数学的,但我坚信机器学习没有什么困难的概念。我们将一起探索的所有过程都将以图形化和直观的方式进行解释。这不仅意味着您将能够应用和理解这些过程,而且您将无需费力地学习数学符号就可以了解所有这些过程。然而,如果你有数学头脑的话,你会发现书中的方程是“很好知道”的,而不是“需要知道”的。

在本章中,我们将定义机器学习这个术语的真正含义。您将了解算法和模型之间的区别,并发现机器学习技术可以分为几种类型,以帮助我们为给定任务选择最佳技术。

1.1 什么是机器学习?

想象一下你在一家医院做研究员。如果,当一个新病人登记时,你可以计算出他们的死亡风险呢?这将允许临床医生更积极地治疗高危患者,从而挽救更多的生命。但是,你会从哪里开始呢?您会使用哪些数据?您如何从数据中获得这些信息?答案是使用机器学习。

机器学习,有时也称为统计学习,是人工智能(AI)的一个子领域,通过“学习”数据中的模式来执行特定任务。尽管算法听起来很复杂,但其实不然。事实上,算法背后的思想一点也不复杂。算法只是我们用来实现某个目标的一步一步的过程,它有开始和结束。厨师对算法有不同的说法,他们称之为“食谱”。在食谱的每一个阶段,你都要执行某种过程,比如打鸡蛋,然后按照食谱中的下一个指示操作,比如混合配料。

看一下我为制作蛋糕而设计的算法,如图1.1所示。它从顶部开始,通过各种操作来完成蛋糕的烘烤和端上桌。有时候,存在决策点,我们采取的路线取决于事物的当前状态,有时候我们需要返回或到算法的前一步。虽然迭代确实可以通过算法实现极其复杂的事情,但我希望你理解,它们只是简单操作的顺序链。

图1 - 1蛋糕的算法我们从顶部开始,执行完每个操作后,按照下一个箭头。菱形是决策点,我们接下来沿着哪个箭头走取决于蛋糕的状态。虚线箭头显示循环回到先前操作的路由。该算法以配料作为输入,输出的蛋糕可以是冰淇淋或蛋奶沙司!

因此,在收集了病人的数据之后,你训练一个机器学习算法来学习与他们的生存相关的数据模式。现在,当你收集一个新病人的数据时,算法可以估计这个病人死亡的风险。

再举一个例子,假设你在一家电力公司工作,你的工作是确保客户的账单得到准确的估计。您训练一个算法来学习与家庭用电相关的数据模式。现在,当一个新的家庭加入电力公司,你可以估计多少钱,你应该每月向他们收费。

最后,假设你是一名政治学家,你正在寻找没有人(包括你)知道的选民类型。您可以训练一个算法来识别调查数据中的选民模式,以便更好地了解选民支持特定政党的动机。你认为这些问题和你想解决的问题有什么相似之处吗?然后,假设答案隐藏在数据的某个地方,你可以训练机器学习算法来提取它。

1.1.1 人工智能和机器学习

IBM的科学家阿瑟·塞缪尔(Arthur Samuel)在1959年首次使用机器学习这个术语。他用它来描述一种人工智能(AI),它涉及训练一种算法来学习玩跳棋游戏。这个词在这里很重要,因为这是学习机器学习方法与传统人工智能的区别。

传统AI是程序化的。换句话说,你给予计算机一套规则,这样当它遇到新数据时,它就能准确地知道要给出哪种输出。例如,使用if-else语句将动物分类为狗、猫或蛇:

numberOfLegs <- c(4, 4, 0)climbsTrees <- c(TRUE, FALSE, TRUE)for (i in 1:3) {  if (numberOfLegs[i] == 4) {    if (climbsTrees[i]) print("cat") else print("dog")  } else print("snake")}

在上面的R代码中,我创建了三个规则,将所有可能的输入映射为输出:

如果这个动物有四条腿,能爬树,那就是猫。如果这个动物有四条腿,不能爬树,那就是狗。否则,这个动物就是蛇。

现在,如果我们将这些规则应用于数据,我们会得到预期的答案:

[1] "cat"[1] "dog"[1] "snake"

这种方法的问题在于,你需要事先知道计算机应该给予你的所有可能的输出,而系统永远不会给你一个你没有告诉它要给的输出。这与机器学习方法形成了鲜明的对比,在机器学习方法中,你不是告诉计算机规则,而是给予它数据,让它自己学习规则。这种方法的优势在于,“机器”可以学习我们甚至不知道数据中存在的模式,而且我们提供的数据越多,它学习这些模式的能力就越强(图1.2)。

图1.2 传统人工智能与机器学习人工智能在传统的AI应用中,我们为计算机提供一整套规则。当它收到数据时,它会输出相关的答案。在机器学习中,我们向计算机提供数据和答案,然后它自己学习规则。当我们通过这些规则传递新数据时,我们就会得到这个新数据的答案。

1.1.2 模型和算法的区别

在实践中,我们称机器学习算法学习的规则集为模型。一旦学习了模型,我们就可以给予它新的观测值,它就会输出对新数据的预测。我们称之为模型是因为它们以一种我们和计算机都能解释和理解的足够简单的方式来表示现实世界的现象。就像埃菲尔铁塔的模型可能很好地代表了真实的的事物,但并不完全相同,统计模型试图代表现实世界的现象,但不会与它们完美匹配。

注:你可能听过统计学家乔治·博克斯(George Box)提出的一句名言:“所有模型都是错误的,但有些是有用的”,这是指模型的近似性质。

学习模型的过程被称为算法。正如我们在前面发现的,算法只是一系列共同解决问题的操作。那么这在实践中是如何工作的呢?让我们举一个简单的例子。假设我们有两个连续变量,我们希望训练一种算法,在给定另一个变量(或变量)的情况下,能够预测其中一个(结果或因变量)。这些预测器自变量之间的关系可以用一条直线来描述,这条直线只需要两个参数来描述: 它的斜率,它与y轴的交点(y截距)。如图1.3所示。

图1.3 任何直线都可以用斜率(y的变化除以x的变化)和截距(x = 0时与y轴的交点)来描述。公式y =截距+斜率 * x可用于在给定x值的情况下预测y值。

学习这种关系的算法可以类似于图1.4中的例子。我们首先通过所有数据的平均值拟合一条没有斜率的直线。我们计算每个数据点到直线的距离,将其平方,然后将这些平方值相加。这是一个平方和度量,用于衡量直线与数据拟合的紧密程度。接下来,我们将直线顺时针旋转一点,然后测量直线的平方和。如果平方和大于之前的值,则说明拟合更差,因此我们将斜率旋转到另一个方向,然后再试一次。如果平方和变小,那么我们的拟合就更好了。我们继续这个过程,每次接近时,就稍微少旋转一点斜率,直到上一次迭代的改进小于我们选择的某个预设值。该算法已经迭代地学习了预测输出变量的未来值所需的模型(斜率和y截距),仅给出了预测变量。这个例子有点粗糙,但希望能说明这样的算法是如何工作的。

图1.4 学习直线参数的假设算法该算法采用两个连续变量作为输入,并拟合一条通过均值的直线。它反复旋转直线,直到找到一个使平方和最小的解。线路的参数作为学习模型输出。

注:机器学习的一个方面,最初令人困惑,但最终有趣的是,有太多的算法来解决同一类型的问题。这是因为不同的人想出了稍微不同的方法来解决同一个问题,所有人都试图改进以前的尝试。这样做的结果是,对于给定的任务,我们作为数据科学家的工作是选择哪种算法将学习性能最好的模型。

虽然对于某些类型的数据,某些算法往往比其他算法执行得更好,但没有一个算法在所有问题上总是优于所有其他算法。此概念称为没有免费午餐定理。换句话说,你不会不劳而获; 你需要付出一些努力,为你的特定问题找到最好的算法。相反,数据科学家通常会选择一些他们知道的算法,这些算法往往对他们正在处理的数据和问题的类型工作得很好,然后看看哪个算法生成的模型性能最好。我们将在本书的后面看到我们是如何做到这一点的。然而,我们可以根据机器学习算法执行的功能和执行方式,将它们分为几类,从而缩小我们最初的选择范围。

1.2 机器学习算法分类

所有的机器学习算法都可以根据它们的学习类型和它们执行的任务来分类。有三种学习类型:有监督、无监督、半监督

这取决于算法如何学习。在学习过程中,他们是否需要我们牵着他们的手?还是他们自己知道答案?监督和非监督算法可以进一步分为两类:

监督:分类、回归无监督:降维、聚类

这取决于他们学什么。

所以我们根据算法如何学习,以及它们学习做什么来对算法进行分类。但我们为什么要关心这个呢?嗯,我们有很多机器学习算法。我们怎么知道该选哪一个?他们需要什么样的数据才能正常工作?知道不同的算法属于哪一类,可以让我们选择最合适的算法的工作变得简单得多。在下一节中,我将介绍每个类是如何定义的,以及为什么它与其他类不同。在本节结束时,您将清楚地了解为什么要使用一个类中的算法而不是另一个类中的算法。在本书的最后,你将掌握运用每门课中的一些算法的技巧。

1.2.1 监督学习、非监督学习和半监督学习的区别

想象一下,你正试图用木块让一个蹒跚学步的孩子学习形状。在他们面前,有一个球、一个立方体和一个星形。你让他们给你看立方体,如果他们指向正确的形状,你就告诉他们是正确的,如果是错误的,你也告诉他们。你重复这个过程,直到孩子几乎所有的时间都能识别正确的形状。这叫做监督学习,因为你,这个已经知道哪种形式是监督学习的人,通过告诉学习者答案来监督他们。

现在想象给一个蹒跚学步的孩子多个球,立方体和星星,但这次也给了三个袋子。蹒跚学步的孩子必须把所有的球放在一个袋子里,立方体放在另一个袋子里,星星放在另一个袋子里,但你不会告诉他们是否正确,他们必须自己从他们面前的信息中得出答案。这被称为无监督学习,因为学习者必须在没有外界帮助的情况下自己识别模式。

因此,如果机器学习算法使用了真实数据,或者换句话说,使用了标记数据,那么它就被称为是有监督的。例如,如果我们想根据基因表达将患者活检分类为健康或标记为癌性,我们将基因表达数据提供给算法,标记为该组织是健康还是癌性。算法现在知道哪些病例来自两种类型中的每一种,并试图学习数据中区分它们的模式。

另一个例子是,如果我们试图估计某人在给定的一个月里在他们的信用卡上花了多少钱,我们会给一个算法关于他们的信息,比如他们的收入,家庭规模,他们是否拥有自己的房子等等。上面写着他们在信用卡上花了多少钱。该算法现在知道每个案例花费了多少,并在数据中寻找可以以可重复的方式预测这些值的模式。

如果一个机器学习算法不使用真实数据,而是自己在数据中寻找暗示某种潜在结构的模式,那么它就被称为无监督的。例如,假设我们从大量的癌症活检样本中获取基因表达数据,然后让一个算法告诉我们是否存在活检样本簇(clusters)。聚类是一组数据,它们是彼此相似的聚类,但不同于其它聚类中的数据。这种类型的分析可以告诉我们,如果我们有癌症类型的亚组,我们可能需要不同的治疗。

或者,我们可能有一个包含大量变量的数据集,变量太多以至于很难人工解释和查找关系。我们可以要求一个算法寻找一种方法,将高维数据集表示为低维数据集,同时尽可能多地保留原始数据中的信息。请看图1.5中的总结。如果您的算法使用标记数据(即地面实况),则它是受监督的,如果它不使用标记数据,则它是无监督的。

图1.5 有监督与无监督机器学习有监督的算法获取已经用地面实况标记的数据,并建立一个模型,该模型可以预测未标记的新数据的标签。无监督算法获取未标记的数据并学习其中的模式,以便新数据可以映射到这些模式上。

SIDEBAR 半监督学习

大多数机器学习算法都属于这些类别之一,但还有一种称为学习的方法。正如它的半监督名称所暗示的,半监督机器学习不是完全监督的,也不是完全无监督的。

半监督学习通常描述一种将监督和非监督算法结合在一起的机器学习方法,而不是严格定义算法本身的类别。半监督学习的前提是,通常,标记数据集可能需要专家观察者的大量手动工作。这个过程可能非常耗时、昂贵并且容易出错,并且对于整个数据集可能是不可能的。因此,我们会尽可能多地对案例进行标记,然后仅使用这些标记的数据构建一个监督模型。我们将其余的数据(未标记的案例)传递到模型中,以获得这些案例的预测标签,这些标签被称为伪标签,因为我们不知道它们是否都是正确的。现在,我们将数据与手动标签和伪标签相结合,并使用它来训练一个新模型。

这种方法允许我们训练一个模型,该模型可以从标记和未标记的数据中学习,并且可以提高整体预测性能,因为我们能够使用我们所处理的所有数据。如果你想在读完本书后了解更多关于半监督学习的知识,请参阅Olivier Chapelle,Bernhard Scholkopf,Semi-Supervised Learning and亚历山大Zien,(麻省理工学院出版社,2006)。这个参考可能看起来相当古老,但仍然很好。

在有监督和无监督的类别中,机器学习算法可以根据它们执行的任务进一步分类。就像机械工程师知道使用哪些工具来完成手头的任务一样,数据科学家也需要知道应该使用哪些算法来完成任务。有四个主要类别可供选择:分类、回归、降维和聚类

1.2.2 分类、回归、降维和聚类

监督机器学习算法可以分为两类:分类算法和回归算法。

分类算法采用标记数据(因为它们是监督学习方法),并学习数据中可用于预测分类输出变量的模式。这通常是一个分组变量(指定特定病例属于哪个组的变量),可以是二项式(两组)或多项式(两组以上)。分类问题是非常常见的机器学习任务。哪些客户会拖欠付款?哪些患者会存活下来?望远镜图像中哪些物体是恒星、行星或星系?当遇到这样的问题时,应该使用分类算法。回归算法采用标记数据,并学习数据中可用于预测连续输出变量的模式。一个家庭向大气中排放了多少二氧化碳?明天一家公司的股价会是多少?患者血液中胰岛素的浓度是多少?当遇到这样的问题时,您应该使用回归算法。

无监督机器学习算法也可以分为两类:降维和聚类算法。

降维算法采用无标签(因为它们是无监督的学习方法)、高维数据(具有许多变量的数据),并学习一种以较低维数表示它的方法。降维技术可以用作探索性技术(因为人类很难同时从两个或三个维度以上的角度对数据进行可视化解释),也可以用作机器学习流程中的预处理步骤(降维技术有助于缓解共线性和维度灾难等问题,我们将在后面的章节中定义这些术语)。我们还可以使用它来帮助我们直观地确认分类和聚类算法的性能(通过允许我们在二维或三维中绘制数据)。聚类算法获取未标记的数据,并学习数据中的聚类模式。聚类是彼此比其他聚类中的数据点更相似的观测的集合。我们假设同一个聚类中的观测值共享一些统一的特征或身份,使它们与其他聚类明显不同。聚类算法可以用作理解我们的数据的结构的探索性技术,并且可以指示可以馈送到分类算法中的分组结构。临床试验中是否存在患者应答者的亚型?调查中有多少类被调查者?是否有不同类型的客户使用我们的公司?当遇到这样的问题时,您应该使用聚类算法。

图1.6按类型和功能总结了不同类型的算法。

图1.6 分类、回归、降维和聚类。分类和回归算法分别建立预测未标记的新数据的分类变量和连续变量的模型。降维算法以更少的维度创建原始数据的新表示,并将新数据映射到该表示上。聚类算法识别数据中的聚类,并将新数据映射到这些聚类上。

通过将机器学习算法分为这四类,您会发现为手头的任务选择合适的算法会更容易。这就是为什么本书的结构是这样的:我们首先处理分类,然后是回归,然后是降维,然后是聚类,这样你就可以在你的头脑中建立一个清晰的工具箱,为你的特定应用提供算法。决定选择哪类算法通常很简单:

如果需要预测分类变量,请使用分类算法。如果需要预测连续变量,请使用回归算法如果需要用较少的变量表示多个变量的信息,请使用降维如果需要识别事例聚类,请使用聚类算法

1.2.3 深度学习简介

如果你读过很多关于机器学习的阅读,你可能已经接触过深度学习这个术语,你甚至可能在媒体上听说过这个术语。

深度学习是机器学习的一个子领域(所有的深度学习都是机器学习,但不是所有的机器学习都是深度学习),在过去的5到10年里非常流行,主要原因有两个:

它可以产生具有卓越性能的模型,我们现在拥有更广泛应用它的计算能力

深度学习用于学习数据中的模式,这一术语指的是神经网络(这些模型的结构)表面上类似于大脑中的神经元,其连接允许它们之间传递信息。人工智能、机器学习和深度学习之间的关系如图1.7所示。

图1.7 人工智能、机器学习和深度学习之间的关系深度学习包括一系列技术,这些技术构成了机器学习技术的子集,而机器学习技术本身又是人工智能的一个子领域。

虽然对于同一个数据集,深度学习方法的表现确实优于“浅”学习方法(有时用于区分非深度学习的机器学习方法),但它们并不总是给定问题的最佳选择。深度学习方法通常不是给定问题的最合适方法,原因有三:

它们的计算开销很大。当然,我们所说的昂贵并不是指金钱成本,我们指的是它们需要大量的计算能力,这意味着它们可能需要很长时间(几个小时甚至几天!)训练。可以说,这是不使用深度学习的一个次要原因,因为如果一个任务对你来说足够重要,你可以投入解决它所需的时间和计算资源;但如果你可以在几分钟内训练出一个表现良好的模型,那么为什么要浪费额外的时间和资源呢?他们往往需要更多的数据。深度学习模型通常需要数百到数千个案例才能表现得非常好。这在很大程度上取决于问题的复杂性,但浅层方法在小数据集上的表现往往比深度学习方法更好。这些规则更难解释。从本质上讲,深度学习模型更看重性能而非模型的可解释性。可以说,我们的重点应该放在性能上,但通常我们不仅对获得正确的输出感兴趣,我们还对算法学习到的规则感兴趣,因为这些规则有助于我们解释现实世界中的事物,并可能有助于我们进一步研究。神经网络学习到的规则不容易解释。

因此,虽然深度学习方法可能非常强大,但浅层学习技术仍然是数据科学家武器库中的宝贵工具。

注:深度学习算法特别擅长处理涉及复杂数据的任务,如图像分类和音频转录。

因为深度学习技术需要很多额外的理论,我相信它们需要自己的书,所以我们不会在这里讨论它们。如果你想学习如何应用深度学习方法(读完本书后,我建议你这样做),我强烈推荐弗朗索瓦·肖莱(Francois Chollet)和约瑟夫·J·阿莱尔(Joseph J. Allaire)撰写的《深度学习与R》(Deep Learning with R,Manning,2018)。

思考机器学习的道德影响

机器学习可以成为一种向善的力量,无论是帮助人们更好地了解自然,还是帮助组织更好地管理资源。但机器学习也有可能带来巨大的危害。例如,2017年发表的一项研究表明,机器学习模型仅凭一张人脸图像就能以惊人的准确性预测一个人的性取向(osf.io/zn79k)。虽然作者没有恶意,但这项研究引起了人们对机器学习潜在滥用的担忧。想象一下,如果一个同性恋仍然是非法的国家(在写这篇文章的时候有72个)使用这样的模式来迫害甚至处决人们?

这是另一个例子:在 2015 年,人们发现谷歌的图像识别算法会将有色人种的图像分类为大猩猩的图像。这里的伦理考虑是,算法训练的数据偏向于白色的图像,在对非白人的图像做出准确(和非种族主义)预测方面做得很差。为了避免这种偏差,我们的训练集必须能够充分代表我们的模型将要使用的人群。无论是使用合理的抽样策略,还是在训练后测试和纠正偏差,我们都有责任确保我们的模型不会对特定的受试者群体产生偏差。

机器学习研究的另一个伦理问题是安全性和可信度。 虽然这看起来像是直接取自科幻电影的东西,但机器学习研究现在已经达到了这样一种程度,即模型可以仅根据面部图像创建一个人说话的视频。 研究人员使用这种所谓的“深度伪造”技术来制作巴拉克奥巴马讲话的视频,无论他们提供什么音频(grail.cs.washington.edu/projects/AudioToObama/siggraph17_obama.pdf)。想象一下,滥用这项技术来伪造被告的证据,刑事审判做出他们从未做过的陈述。 类似的技术也被用来在视频中用另一个人的脸替换一个人的脸。可悲且臭名昭著的是,这已被滥用来交换名人的脸进入色情视频。 想象一下这等于毁了一个人的事业和尊严。

上一点使我想到资料保护和同意的问题。为了训练有用的机器学习模型,我们需要数据。但重要的是要考虑你所使用的数据是否是在道德上收集的。它是否包含个人、敏感或财务信息?这些数据属于任何人吗?如果是,他们是否就如何使用该药物给予知情同意?2018年,当咨询公司剑桥分析公司未经数百万人的同意挖掘他们的社交媒体数据时,这些问题受到了关注。随后媒体的强烈抗议和剑桥分析公司的清算应该作为一个严酷的提醒,道德数据收集程序的重要性。

另外两个伦理问题是

谁应该做决定,当出了问题时谁应该受到惩罚?

想象一下,我们有一个机器学习模型,它可以根据病人的诊断数据,告诉我们是否要对他们进行手术。如果模型的建议在以前的所有案例中都被证明是正确的,你是否愿意遵循它?一个能预测被告有罪还是无罪的模型呢?你可能会说第二个例子很荒谬,但它突出了我的观点:人类是否应该参与到机器学习的决策过程中?如果是这样,人类应该如何参与这些过程?

这些问题的答案取决于所做的决定,它如何影响相关人员,以及在决策过程中是否应该考虑人类情感。

罪责问题提出了这样一个问题:当机器学习算法做出的决定导致伤害时,谁应该负责?我们生活在人们要对自己的行为负责的社会中。当坏事发生时,无论对错,我们都希望有人被判有罪。2018年,一辆具有自动驾驶能力的汽车与一名行人发生碰撞并导致其死亡。应该对谁负责?制造商?在车里的那个人?行人?行人是不是松鸦有关系吗?像这样的道德困境需要在像这样的机器学习技术发布到世界上之前加以考虑和仔细解决。

所以我想问你们的是,当你们训练机器学习模型时,问自己这五个问题:

我的意图合乎道德吗?即使我的意图是道德的,其他人会伤害我的模型吗?我的模型是否有可能造成伤害或歧视?数据收集是否符合伦理?一旦部署完成,人类将如何适应模型所做的决定?

如果其中任何一个问题的答案让你感到不安,请仔细考虑你所做的是否合乎道德。就因为我们做了什么,就能做并不意味着我们。如果你想更深入地讨论应该如何执行符合道德的机器学习,我建议阅读Paula Boddington(Springer,2017)撰写的《人工智能道德准则》。

1.3 为什么使用R进行机器学习?

两种最常用的数据科学语言之间存在某种竞争:R和Python。任何刚接触机器学习的人都会选择其中一个开始学习,他们的决定通常会受到他们所能访问的学习资源的指导,哪一个在他们的工作领域更常用,哪一个他们的同事使用。没有机器学习任务只能应用于一种语言或另一种语言,尽管一些更前沿的深度学习方法更容易应用于Python(它们往往先用Python编写,然后再用R实现)。Python虽然非常适合数据科学,但它是一种更通用的编程语言,而R则专门面向数学和统计应用程序。这意味着R的用户可以完全专注于数据,但是如果他们需要基于他们的模型构建应用程序,他们可能会感到受到限制。

当这两个人在数据科学领域相互竞争时,真的没有一个总的赢家(当然每个人都有自己的最爱)。那么,为什么我选择写一本专门讨论R中的机器学习的书呢?R中有一些现代化的工具,专门用来简化数据科学任务,使之易于阅读,比如(我们将在第2章中深入介绍tidyverse中的这些工具)。

传统上,R中的机器学习算法分散在由不同作者编写的多个包中。这意味着每次要应用新算法时,都需要学习使用具有不同参数和实现的新函数。python的支持者可以用这个例子来说明为什么python更适合机器学习,因为它有著名的scikit-learn包,里面内置了大量的机器学习算法,但是R现在也紧随其后,推出了caret和mlr包。虽然在用途和功能上与插入符号非常相似,但我相信mlr更加灵活和直观,因此我们将在本书中通篇使用mlr。

mlr包(在R中代表机器学习)为大量的机器学习算法提供了接口,并允许您用很少的编码来执行极其复杂的机器学习任务。在可能的情况下,我们将在本书中使用mlr软件包,这样,当你读完本书时,你就可以熟练地使用最现代的机器学习软件包之一。

1.4 我们将使用哪些数据集?

为了让您的学习过程尽可能有趣,我们将在机器学习管道中使用真实的数据集。R附带了大量的内置数据集,这些数据集由我们将要加载到R会话中的包附带的数据集进行补充。我决定使用R或它的包附带的数据集,以使您在离线时更容易阅读本书。我们将使用这些数据集来帮助我们构建机器学习模型,并比较不同模型在不同类型数据上的表现。

提示:有这么多的数据集可供选择,读完每一章后,我建议你将所学的知识应用到不同的数据集。

1.5 你将从这本书中学到什么

这本书给你一个动手介绍机器学习与R。要从这本书中受益,您应该熟悉基本的R编码,比如加载包,以及处理对象和数据结构。您将了解:

如何使用使用tidyverse组织、整理和绘制数据关键概念,如过拟合、欠拟合和偏差-方差权衡应用四类(分类、回归、降维和聚类)中每一类的多个机器学习算法如何验证模型性能并防止过拟合如何比较多个模型以确定最佳模型

在整本书中,我们将使用有趣的例子来学习概念,并将我们的知识应用到。在可能的情况下,我们还将对同一数据集应用多个算法,以便您了解不同算法在特定情况下的表现。

1.6 摘要

人工智能是通过计算机处理智能知识的外观机器学习是人工智能的一个子领域,其中计算机学习数据中的关系,以预测未来的,看不见的数据,或识别有意义的模式,帮助我们更好地理解我们的数据机器学习算法是学习数据中的模式和规则的过程,并且模型是接受新数据、将规则应用于新数据并输出答案的那些模式和规则的集合。深度学习是机器学习的子领域,机器学习本身是人工智能的子领域。机器学习算法被分类/划分为监督的和非监督的,取决于他们是否从地面实况数据中学习(监督学习)或未标记数据(无监督学习)监督学习算法被分类/划分为类别(如果它们预测分类变量)或回归(如果它们预测连续变量)无监督学习算法被分类/划分为降维(如果他们发现数据的较低维度表示)或聚类(如果他们识别出数据中的案例集群)与Python相似,R是一种流行的数据科学语言,包含许多工具和内置数据,可简化学习数据科学和机器学习的过程

关键词: 机器学习 人工智能 无人驾驶 屏住呼吸智能汽车来了 熊猫宝来 全民悦读有奖征集

推荐阅读

dwg文件是什么 dwg文件用什么打开?

相信很多人都不知道dwg文件用什么打开?,接下来小编就带大家介绍一些方法,大家可以了解一下。一、看图纸参见图纸DwgSeePlus是一个dwg文件 【详细】

工业革命是什么 工业革命的影响有哪些?

工业革命的影响有哪些?三次工业革命分别是什么时间?影响1、工业革命引起了生产组织形式的变化,用机器工厂制代替手工作坊。影响2 工业革命 【详细】

导电膏的作用 导电膏使用方法是什么?

电接触导电膏是由无机稠化剂稠化合成油并加有超细导电填料、抗腐蚀、抗氧化等多种添加剂精制而成的导电防腐油膏。此导电膏设计用于改善电力 【详细】

流沙河有多长?流沙河流域水电站简介

在西游记中,我们都知道沙僧是从流沙河出现的,那么故事中的流沙河在哪里?流沙河有多长?流沙河流域建了哪些水电站?下面我们来详细了解一下 【详细】

中国第一颗人造卫星是什么 中国第一颗人造卫星简介

中国第一颗人造卫星发射时间等内容介绍:1970年4月24日,在酒泉卫星发射中心成功发射了中国第一颗人造地球卫星东方红一号卫星。这开启了中 【详细】

相关新闻

关于我们  |  联系方式  |  免责条款  |  招聘信息  |  广告服务  |  帮助中心

联系我们:85 572 98@qq.com备案号:粤ICP备18023326号-40

科技资讯网 版权所有