机器学习全解(R语言版)

978-7-115-64146-5
作者: 黄天元
译者:
编辑: 胡俊英
分类: R语言

图书目录:

详情

本书立足于机器学习基本概念,基于R语言的数据科学工具包,对机器学习进行了系统化的讲解与实现。首先介绍了机器学习基本概念、R语言基础、数据操作基础与探索性数据分析,让读者对R语言有基础的了解。然后对机器学习的常用方法和关键步骤进行了介绍和演示,包括线性回归、朴素贝叶斯、机器学习模型等方面的内容。最后列举了4个案例,主要实现了二分类预测、回归预测、特征筛选、多分类预测等功能,手把手用简单的例子引导读者进行实践。

图书摘要

版权信息

书名:机器学习全解(R语言版)

ISBN:978-7-115-64146-5

本书由人民邮电出版社发行数字版。版权所有,侵权必究。

您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。

我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。

如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。


版  权

著    黄天元

责任编辑 胡俊英

人民邮电出版社出版发行  北京市丰台区成寿寺路11号

邮编 100164  电子邮件 315@ptpress.com.cn

网址 http://www.ptpress.com.cn

读者服务热线:(010)81055410

反盗版热线:(010)81055315

内 容 提 要

机器学习是近年来非常热门的学科,R语言经过一段时间的发展也逐渐成为主流的编程语言之一。本书结合机器学习和R语言,面向机器学习实践,不仅介绍了机器学习和R语言的基础知识,而且介绍了如何借助不同的算法来进行模型分析,以及这些算法在R语言中的实现方式。通过阅读本书,读者可以快速了解机器学习和R语言的必备知识,掌握机器学习的实现流程。

本书适合程序员、数据分析人员、对算法感兴趣的读者、机器学习领域的从业人员及科研人员阅读。

序  言

机器学习是人工智能的一个分支,旨在通过构建和训练计算机算法和模型,使计算机能够从数据中学习并自主进行决策和预测。传统的计算机程序是由开发者编写特定的规则和指令以实现特定的任务。然而,机器学习不同,它依赖数据驱动的学习过程。机器学习算法会分析大量的输入数据,并根据这些数据的模式、趋势和统计特征来提取信息并进行预测。机器学习在许多领域都有广泛的应用,如自然语言处理、图像和语音识别、推荐系统、金融预测、医疗诊断等。它为处理大规模和复杂的数据提供了一种强大的工具和方法,使计算机能够自动从数据中学习和改进,从而实现更准确的预测和决策。

我最初是在硕士研究生阶段接触机器学习的,作为一个自然科学领域的研究生,当时我非常希望学好R语言,从而更好地采集、管理和分析手头的数据。非常幸运,我遇到了Max Kuhn所著的图书Applied Predictive Modeling,并被里面的内容深深吸引了。这本书完全超越了R语言的范畴,它所触及的是机器学习的本质——如何通过一套清晰的思路和流程来利用数据创建模型,从而完成预测。当然,有R语言的基础,以及Max Kuhn所开发的caret包,整个机器学习的实现过程变得极其高效。在学习的过程中,我不断地去了解机器学习中的不同概念,同时会参照书上的代码在计算机上实践,这个过程令我受益匪浅。

时至今日,R语言社区中机器学习的工具已经发生了很多新的变化。caret包依然作为通用的机器学习工具被广泛使用,但是其开发者Max Kuhn已经投入到机器学习新框架tidymodels的开发中,以tidyverse为核心的整洁之风正在席卷整个R语言生态。另外,mlr框架也是R语言中比较流行的机器学习框架,2013年首次在CRAN平台上发布,而且其可扩展性不断提升并进行了多次迭代重写,形成了现在的mlr3。

尽管机器学习工具的变化日新月异,但是机器学习的核心概念是稳固的,更加好用的工具使机器学习的实现和教学变得更加便捷,能让学习者可以集中精力关注机器学习本身,而不是如何利用工具去实现。为此,本书面向机器学习实践,并重点介绍了机器学习的基本概念,包括特征工程、重采样、模型表现的衡量、模型筛选、参数调节等,还介绍了比较新的方法来开展模型分析(常被称作“可解释的机器学习”)。同时,本书给出了各种机器学习方法在R语言中的实现方式,所使用的框架包括但不限于caret、tidymodels、mlr、mlr3,并在案例分析中向读者演示了如何利用这些工具完成指定的机器学习任务。通过对本书的学习,读者能够快速了解机器学习的基本概念,并利用R语言来实现机器学习的各个步骤,从而高效地创建模型。

黄天元

前  言

机器学习是人工智能的重要组成部分,主要是设计一些让计算机可以自动“学习”的算法,从而让计算机能够从数据中获得经验,进而根据场景中的输入数据给出建议和决策。本书旨在对机器学习的基本知识进行讲解,并结合R语言中一些前沿的机器学习工具来帮助读者掌握机器学习的基本技巧。

全书共16章内容,提供了丰富的案例和操作演示,力求帮助读者了解机器学习场景中常用的R语言工具和建模技巧,让读者在机器学习项目中能够有条不紊地开展分析,进而高效完成统计建模,让获得的结果能够有效地应用在科学研究和实际工作中。

在阅读本书时,读者还可以借助随书提供的配套案例数据和相关代码,跟随书中的提示,逐步进行实践操作。读者将在相关案例的学习中,进一步巩固机器学习的相关知识,掌握R语言在机器学习领域的实践应用能力。

本书涵盖以下主要内容。

第1章介绍机器学习的一些基本知识,包括概念、意义、种类和基本流程。

第2章介绍R语言综合基础,首先讲述了如何对R语言的软件环境进行配置,随后分别讲解了编程保留符号、基本数据类型、常用数据结构、程序流程控制和函数使用技巧,以帮助读者熟练掌握R语言的操作环境。

第3章介绍高效数据操作,主要聚焦在如何使用R语言的一些工具来完成包括排序、汇总、分组计算在内的常用数据操作。

第4章介绍广泛流行的R语言数据科学工具集tidyverse,从数据的读取、整理和可视化3个方面介绍了工具集中的各种程序包,包括readr、purrr、forcats、lubridate、stringr、tibble、dplyr、tidyr、ggplot2等。

第5章介绍探索性数据分析中的基本内容,并给出了R语言的实现方法,同时还介绍了一系列探索性数据分析工具包,包括vtree、skimr和naniar。

第6章介绍特征工程的基本概念,从特征修饰、特征构造和特征筛选3个方面展开讲解,并给出了R语言中的实现方法。

第7章介绍重采样方法,分别针对模型评估和类失衡两种情况进行探讨,阐明了为何要使用重采样方法,以及如何使用不同的重采样方法(如交叉验证、自举法)来实现目的。

第8章介绍模型表现的衡量,分别基于回归模型和分类模型,列举了一般用哪些指标来对模型的效果进行衡量。

第9章介绍模型选择,首先对当前流行的机器学习算法进行了简要的介绍,然后介绍了在R环境中如何使用mlr3工具包来对其进行实现,并给出了一个实践案例进行演示。

第10章介绍参数调节,即在机器学习过程中如何选择最合适的超参数组合来提高模型表现,本章结合mlr3框架介绍了如何在R环境中使用不同的参数调节策略。

第11章介绍模型分析,旨在提高模型的可解释性,分别讲述了变量重要性评估、变量影响作用分析和基于个案的可加性归因方法。

第12章介绍了集成学习,首先对集成学习的3种常见策略(Bagging、Boosting和Stacking)进行了介绍,然后利用caret和caretEnsemble框架演示了如何在R语言中对集成学习进行实现。

第13~16章为实践案例,分别依托caret、mlr、mlr3和tidymodels这4个R语言中较为流行的机器学习工具包,按部就班地完成各项机器学习任务,旨在让读者将前面章节所学的知识融会贯通,提高实践应用能力。

目标读者

本书内容深入浅出,可供对机器学习感兴趣的读者自学,有助于其快速了解机器学习的基础知识,并使用R语言系统化地完成一系列机器学习任务。此外,本书结合机器学习主题展示了R语言的丰富特性和强大魅力,适合对R语言感兴趣的读者学习参考。

配套资源

本书提供配套的案例数据和相关代码,希望能够帮助读者更好地复现书中的实例并掌握相关知识点,上述资源可以从异步社区免费下载。

资源与支持

资源获取

本书提供如下资源:

本书源代码、案例数据;

配套彩图文件;

本书思维导图;

异步社区7天VIP会员。

要获得以上资源,您可以扫描下方二维码,根据指引领取。

提交错误信息

作者和编辑虽已尽最大努力来确保书中内容的准确性,但难免会存在疏漏。欢迎您将发现的问题反馈给我们,帮助我们提升图书的质量。

当您发现错误时,请登录异步社区(https:// www.epubit.com),按书名搜索,进入本书页面,单击“发表勘误”,输入错误信息,单击“提交勘误”按钮即可(见右图)。本书的作者和编辑会对您提交的错误信息进行审核,确认并接受后,您将获赠异步社区的100积分。

与我们联系

我们的联系邮箱是contact@epubit.com.cn。

如果您对本书有任何疑问或建议,请您发邮件给我们,并请在邮件标题中注明本书书名,以便我们更高效地做出反馈。

如果您有兴趣出版图书、录制教学视频,或者参与图书翻译、技术审校等工作,可以发邮件给本书的责任编辑(hujunying@ptpress.com.cn)。

如果您所在的学校、培训机构或企业,想批量购买本书或异步社区出版的其他图书,也可以发邮件给我们。

如果您在网上发现有针对异步社区出品图书的各种形式的盗版行为,包括对图书全部或部分内容的非授权传播,请您将怀疑有侵权行为的链接发邮件给我们。您的这一举动是对作者权益的保护,也是我们持续为您提供有价值的内容的动力之源。

关于异步社区和异步图书

“异步社区”是由人民邮电出版社创办的IT专业图书社区,于2015年8月上线运营,致力于优质内容的出版和分享,为读者提供高品质的学习内容,为作译者提供专业的出版服务,实现作者与读者在线交流互动,以及传统出版与数字出版的融合发展。

“异步图书”是异步社区策划出版的精品IT图书的品牌,依托于人民邮电出版社在计算机图书领域的发展与积淀。异步图书面向IT行业以及各行业使用IT的用户。

第1章 机器学习概论

在大数据时代,机器学习渗透到了人们工作和生活的方方面面,从垃圾邮件自动识别到电商平台定向推荐,从人脸身份识别到天气预报预警,它们都是机器学习的重要应用。本章将从初学者的视角对机器学习进行循序渐进的介绍,让读者快速了解机器学习的核心概念。

1.1 机器学习的概念

机器学习是人工智能的一个分支科学,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科,是一门多领域交叉学科。通俗地讲,机器学习就是利用计算机来对人的学习行为进行实现,从而获得关键认知或预测未来。要理解机器学习,需要先了解传统的人工智能方法,它近似于形式逻辑中的三段论推理(包含大前提、小前提和结论三部分)。我们举个简单的物理学例子来说明。在物理学中,欧姆定律是指在同一电路中,通过某段导体的电流跟这段导体两端的电压成正比,跟这段导体的电阻成反比。简单地用公式来表达就是:I = U/R。其中,I表示电流,U表示电压,R表示电阻。如果我们已经知道了欧姆定律这个规则(大前提),又知道电压和电阻分别为3V和3Ω(小前提),那么我们就可以获得电流I = 3V/3Ω = 1A的结论(V、Ω、A分别为电压、电阻和电流的单位,中文称为伏特、欧姆和安培)。这个过程可以用图1-1表示。

图1-1 传统人工智能模式

我们当前所讨论的机器学习,则是从数据出发去获知规则的过程。在获得规则之后,再通过这个规则对新的数据进行预测。还以欧姆定律为例,但是这次我们并不知道欧姆定律,我们只知道在同一电阻下,施加不同的电压,会产生不同的电流,如U=5V,I=5A;U=4V,I=4A;U=3V,I=3A。我们希望知道,当U=6V的时候,I应该是多少。这就是一个典型的机器学习问题。这个过程可以通过图1-2进行表示。总的来说,机器学习就是利用数据训练获得规则,然后再把规则应用到新场景(新数据)的过程。

图1-2 机器学习模式

1.2 机器学习的意义

机器学习的意义大体可以分为以下两种:

理解事物发展的道理;

对未来的状况进行预测。

两者是辩证统一的,但是在实践中却往往有所偏向,因此可以将机器学习分为可解释型(interpretable)和可预测型(predictable)。下面我们对这两种类型进行说明。

可解释型机器学习。英国统计学家George Box曾经说过一句至理名言,即“所有模型都是错误的,但是其中一些是有用的”(All models are wrong, but some are useful)。因为现实中,不同因素之间的关系是错综复杂的,因此在现实中往往很难提炼出理想的模型。尽管如此,通过机器学习来建立统计模型,依旧能够帮助我们更好地理解事物之间的关系。举例来说,一个城市的PM 2.5值可能受到多个因素的影响,包括气温、风力、降水、城市建筑的结构等。我们可能无法单纯用这些解释性因子来构建一个可完美预测PM 2.5值的模型,但是通过机器学习我们能够知道哪些影响因素可能起到主导作用,而哪些因素相关性不大。

可预测型机器学习。在实践中,有很多预测性高的模型属于“黑箱模型”(Black Box Model),如神经网络模型、SVM模型等。尽管我们可以看到这些模型的参数,但我们很难直接利用这个模型对一个过程背后的发生机制进行详尽的解释。这些模型往往把预测精度放在第一位,而暂时忽略其可解释性。举例来说,我们可以选取上百个与股票价格有关的特征,然后通过深度学习的方法获得一个复杂的模型,从而对未来的股价进行预测。尽管这个模型极其复杂,以至于我们无法理解它为什么如此有效。但是它对未来股价的预测要比其他模型都好,因此在金融行业高频交易的场景中能够得到应用。

根据上面的介绍,我们可以发现,在可预测型机器学习中,应用价值往往高于理解本身。而在可解释型机器学习中,探明事物发展的机理高于一切,否则没有任何意义。在理想的状态下,两者应该是统一的,也就是机器学习获得的模型既具有高度的可解释性,又具有精确的预测性,这是机器学习领域的一个重要课题。

1.3 机器学习的种类

当我们遇到一个机器学习任务的时候,首先要对其任务类型进行判别,然后才能选择正确的方法来解决问题。总的来说,机器学习可以根据其有无明确的响应变量(也称因变量)分为三大类,即有监督学习(有响应变量)、无监督学习(无响应变量)和半监督学习(部分包含响应变量),如图1-3所示。例如我们要分辨一个邮件是否为垃圾邮件,如果我们已经有标注好的邮件信息(即已经知道哪些邮件是垃圾邮件,哪些是非垃圾邮件),那么这就是一个有监督的问题。如果我们单纯要根据邮件的内容长短(但没有预知信息)来给邮件分类,例如分为长文本邮件和短文本邮件,那么这就是一个无监督问题。一种特殊的情况是半监督学习,它是在标注信息有限的情况下,人工先对部分样本进行标注,然后利用已经标注好的样本进行训练,得到一个有监督学习的模型。然后利用这个模型对未知样本进行预测,从而自动化获得标注信息,最后依赖所有的样本及其标注信息,再次训练样本获得一个新的模型。

图1-3 机器学习的种类

至于有监督学习和无监督学习,又可以继续细分。在有监督学习中,根据响应变量是连续变量还是离散变量,可以分为分类和回归两种。当响应变量为离散变量时,称为分类任务。例如银行会根据客户的一些基本材料判断其是否违约,那么是违约还是不违约,共计两种情况,就是典型的分类任务。当响应变量为连续变量时,我们称之为回归任务(这是广义的概念,不同于狭义的基于最小二乘法的回归模型)。例如我们想要预测每一天的气温,而气温是一个离散型随机变量,有无数种可能,因此它属于回归任务。无监督学习可以分为聚类和降维两类任务。其中,聚类是指在没有先验知识的情况下,基于一定的标准对样本进行划分。例如商业领域分析用户画像的时候,就可以根据用户的消费频次、消费金额和最近消费时间给用户进行聚类,从而筛选出具有价值的重要客户,并对他们予以更多的关注。另外,降维任务是指在高维数据中把冗余信息剔除,把重要的变量筛选出来或利用较少变量来对数据进行表征。例如特征中可能存在严重的共线性(变量之间存在较强的相关性),那么就可以剔除一些常数变量(在所有样本中都是同一数值的变量)。其他常用的降维方法还有PCA、SVD等。

1.4 机器学习基本流程

狭义的机器学习往往强调模型的训练,但实际上机器学习是一个系统工程,是一个从数据到模型,再从模型到应用的全过程。图 1-4 所示的是一个经典的机器学习工作流。数据科学家首先需要对业务问题进行定义,然后采集相关的数据,从数据和业务背景两点出发来对数据进行预处理。在预处理的过程中,我们需要对不合格的数据进行剔除或修复(数据清洗),同时可以根据业务需要构造新的特征或者剔除无用特征(特征工程)。在预处理之后,我们会得到结构化的数据集,在这个基础上我们可以进行模型的训练。通常我们会把数据划分为训练集和验证集,在训练集中进行模型的训练,然后在验证集中进行验证。这个过程往往会尝试多个不同的算法,同时对于特定的算法会不断进行参数的调整,经过反复的迭代得到最优模型。最后,获得的最优模型会放在实际的场景中进行验证,然后再部署到一线业务中。在本书后面的内容中,我们将会对这个基本流程进行更为深入的介绍,通过实际的应用案例进行演示,并附上相关的R语言实现代码。

图1-4 机器学习工作流

相关图书

科研论文配图绘制指南——基于R语言
科研论文配图绘制指南——基于R语言
R语言编程:基于tidyverse
R语言编程:基于tidyverse
R语言医学多元统计分析
R语言医学多元统计分析
Python与R语言数据科学实践
Python与R语言数据科学实践
R数据挖掘实战
R数据挖掘实战
R语言机器学习实战
R语言机器学习实战

相关文章

相关课程