再 版 前 言
由于大数据、物联网、云计算推动了人工智能技术的落地实施,机器学习逐渐显现其重要性,成为人工智能的核心技术。
从理论的角度,大部分人都清楚的知道,研究机器学习不会遇到要学习底层理论的情况,通常只是应用程序接口(Application Programming Interface,API)的调用。所以基本上绝大多数研究者都把注意精力集中到数据处理上;由此可见,数据处理非常重要。数据处理得好,数据特征质量就会比较高,机器学习也就相对比较容易。
从模型评估角度,需要将预测的结果和真实的结果比较,但模型的输出是类别还是类别的概率,需要处理,才能使用评价函数。所以说,还是要将重点放在数据处理上,如何将概率转换为类别?如何计算auC.roc 之类的?其实本质上都是一样的:把数据处理成特征明显的、格式符合这些函数(不管是模型函数还是评估函数)的,就会出现没有问题的结果。所以,对于大多数程序员来说,机器学习到最后还是数据处理(也就是数据转换之类的任务)。
从模型训练角度,模型调参是靠经验的,刚开始可能是手动调整,那么能不能自己写一个交叉验证?写个网格搜索(用for 循环就可以实现)?把每一次调用的参数、结果都保存起来?这些问题不都是数据处理吗?是更改了底层机器学习的原理了吗?并没有!虽然不更改底层的模型代码,但是会数据处理;这样就可以玩机器学习,并初步接触到人工智能了。所以还是要数据处理,由此再次可见数据处理非常重要!
从商业角度,还是要回答一个不能回避的问题,数据处理引擎用R 语言还是用Python?R 语言在国外用得很火,但是国外会R 语言的有几个不会Python?在国内Python 确实比R 语言流行,说明Python 生态优于R 语言的生态。就数据处理而言,R 语言有其独到之处(动态数据类型、向量化运算、数据框、因子变量等),对初次学习数据处理要求更低,并且R语言和Python 是无缝对接的,互操作非常自然,如果是非计算机专业的爱
好者,R 语言是学习数据处理的上佳选择。
第2 版对第1 版的内容和结构都做了较大的调整。
(1)去掉了数据分析师素养等宏观内容,而更加注重实操和解决实际问题。
(2)全书的实验数据以Titanic 项目为切入点,贯穿数据处理的全过程;从实际项目出发讲解相关知识点,因此增强了业务场景的体验。
(3)去掉了大数据处理的章节,因为大数据处理的方法、思维和小数据没有本质区别,只是平台不同。
(4)增加了字符串处理、特征工程、数据建模、模型评估方面的内容。
(5)增加了大量的学习资料:PPT、习题、代码、数据集、扩展阅读、微课视频等。
(6)增加了近几年R 语言的最新成果:pacman、caret、tidyverse、mlr 等。
本书第1~7 章由孙丽丽改编,第8~11 章由程显毅改编,第12、13章由林道荣改编。
本书编写过程中得到了云创刘鹏教授和清华大学出版社王莉编辑的大力支持和悉心指导,在此深表感谢。由于作者水平有限,书中一定会有不当之处,希望读者多多指教及谅解。
编 者
2022 年5 月