![541e4657ef04b9aa03bdda2c8f60d844bc3dffab](https://i-blog.csdnimg.cn/blog_migrate/c708db640988c469fdaf60540a901847.png)
前 言
机器学习的核心是将信息转化为具有可行性的情报的算法。这一事实使得机器学习非常适用于当今的大数据时代。如果没有机器学习,要跟上海量的信息数据流几乎是不可能的。
鉴于R不断增长的地位(R是一个跨平台的、零成本的统计编程环境),现在是开始使用机器学习的最好时代。R提供了一套功能强大且易于学习的工具,这些工具可以帮助你发现数据背后隐藏的信息。
通过把实践案例研究与基本理论(你需要理解这些理论在后台是如何运行的)相结合,本书提供了将机器学习应用到项目中所需要的全部知识。
本书涵盖的内容
第1章介绍了用来定义和区分机器学习算法的术语和概念,并给出了将学习任务与适当算法相匹配的方法。
第2章提供了一个在R中自己实际动手操作数据的机会,并讨论了基本的数据结构以及用于载入、探索和理解数据的程序。
第3章教你如何将一个简单且功能强大的学习算法应用于你的第一个学习任务:识别癌症的恶性样本。
第4章揭示了用于先进的垃圾邮件过滤系统的概率的基本概念,并且在建立你自己的垃圾邮件过滤器的过程中,你将学习文本挖掘的基本知识。
第5章探索两种学习算法,它们的预测不仅精确而且容易解释。我们将把这两种算法应用于对透明度要求很高的任务中。
第6章介绍了用于数值预测的机器学习算法。由于这些技术在很大程度上来源于统计领域,所以你还将通过学习必要的基本指标来理解数值之间的关系。
第7章包括两个极其复杂但功能强大的机器学习算法。尽管数学可能会让人望而生畏,但是我们将以简单的术语,结合实际例子来说明它们内部的运作原理。
第8章揭示了许多零售商使用的推荐系统的算法。如果你想知道零售商是如何比你自己更了解你的购物习惯的,本章将揭示他们的秘密。
第9章介绍k均值聚类。该算法用来查找相关个体的聚类。我们将使用该算法来确定一个网络社区内的分布。
第10章提供了度量机器学习项目是否成功的信息,并提供了机器学习算法在未来数据上性能的可靠估计。
第11章揭示了在机器学习竞赛中排名最靠前的团队所采用的方法。如果你具有竞争意识,或者仅仅想获取数据中尽可能多的信息,那么需要学习这些技术。
第12章探讨了机器学习的前沿主题。从使用大数据到使R的运行速度更快,涉及的这些主题将帮助你拓展使用R进行数据挖掘的界限。
学习本书的知识准备
本书中的例子是基于Microsoft Windows和Mac OS X系统的R 3.2.0进行编写与测试的,当然,对于任意最新的R版本,这些例子基本上都能运行。
本书读者对象
本书适用于任何希望使用数据来采取行动的人。或许你已经对机器学习有些了解但从来没有使用过R,或许你已经对R有些了解但机器学习对于你来说是全新的知识,无论何种情况,本书将让你快速上手。稍微熟悉一些基本的数学和编程概念将是有帮助的,但先前的经验并不是必需的,你只需要有好奇心就行。
本书约定
在本书中,你将发现一些用于区分不同类型信息的文本样式。下面是这些样式的一些例子,以及它们的含义解释。
文本中的代码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟URL、用户输入和Twitter句柄如下所示:“安装一个添加包的最直接方式是通过install.packages()函数。”
代码段如下所示:
任何命令行输入或输出如下所示:
新的术语(new term)和重要词汇(important word)以黑体显示。你在屏幕上看到的单词,例如,在菜单或对话框中看到的单词,像这样出现在文本中:“CRAN页面左边的任务视图链接提供添加包的长列表。”
警告或者重要注释。
提示和技巧。
致谢
没有家人和朋友的支持,编写本书根本是不可能的。特别地,我要非常感谢我的妻子Jessica在过去的一年中对我的耐心与鼓励。在我的儿子Will出生时第1版的写作正在进行中,在我的写作中他分散了我较多的精力,在本书出版后他很快就要成长为一名大男孩。不知道是相关还是因果,仿佛每次我打开本书,我的家人都会在我的眼前出现!我把本书献给我的孩子们,希望有一天他们能从中受到启发,应对重大的挑战,并跟随他们的好奇心,无论他们的好奇心会通向哪里。
我还要感谢支持本书的很多人。本书的很多想法来源于我与密歇根大学、圣母大学以及中佛罗里达大学的教育工作者、同事以及合作者的互动。此外,如果没有各位研究人员以公开出版物、课程和源代码的形式分享他们的专业知识,本书可能根本就不会存在。最后,我要感谢R团队和所有那些贡献R添加包的人员的努力,是他们的努力最终为大家普及了机器学习。我真心希望我的研究是机器学习这块马赛克中有价值的一片图案。
目 录
第1章 机器学习简介
1.1 机器学习的起源
1.2 机器学习的使用与滥用
1.2.1 机器学习的成功使用
1.2.2 机器学习的限制
1.2.3 机器学习的伦理方面
1.3 机器如何学习
1.3.1 数据存储
1.3.2 抽象化
1.3.3 一般化
1.3.4 评估1
1.4 实践中的机器学习
1.4.1 输入数据的类型
1.4.2 机器学习算法的类型
1.4.3 为输入数据匹配算法
1.5 使用R进行机器学习
1.5.1 安装R添加包
1.5.2 载入和卸载R添加包
1.6 总结
第2章 数据的管理和理解
2.1 R数据结构
2.1.1 向量
2.1.2 因子
2.1.3 列表
2.1.4 数据框
2.1.5 矩阵和数组
2.2 用R管理数据
2.2.1 保存、载入和移除R数据结构
2.2.2 用CSV文件导入和保存数据
2.3 探索和理解数据
2.3.1 探索数据的结构
2.3.2 探索数值变量
2.3.3 探索分类变量
2.3.4 探索变量之间的关系
2.4 总结
第3章 懒惰学习—使用近邻分类
3.1 理解近邻分类
3.1.1 kNN算法
3.1.2 为什么kNN算法是懒惰的
3.2 例子—用kNN算法诊断乳腺癌
3.2.1 第1步—收集数
3.2.2 第2步—探索和准备数据
3.2.3 第3步—基于数据训练模型
3.2.4 第4步—评估模型的性能
3.2.5 第5步—提高模型的性能
3.3 总结
第4章 概率学习—朴素贝叶斯分类
4.1 理解朴素贝叶斯
4.1.1 贝叶斯方法的基本概念
4.1.2 朴素贝叶斯算法
4.2 例子—基于贝叶斯算法的手机垃圾短信过滤
4.2.1 第1步—收集数据
4.2.2 第2步—探索和准备数据
4.2.3 第3步—基于数据训练模型
4.2.4 第4步—评估模型的性能
4.2.5 第5步—提高模型的性能
4.3 总结
第5章 分而治之—应用决策树和规则进行分类
5.1 理解决策树
5.1.1 分而治之
5.1.2 C5.0决策树算法
5.2 例子—使用C5.0决策树识别高风险银行贷款
5.2.1 第1步—收集数据
5.2.2 第2步—探索和准备数据
5.2.3 第3步—基于数据训练模型
5.2.4 第4步—评估模型的性能
5.2.5 第5步—提高模型的性能
5.3 理解分类规则
5.3.1 独立而治之
5.3.2 1R算法
5.3.3 RIPPER算法
5.3.4 来自决策树的规则
5.3.5 什么使决策树和规则贪婪
5.4 例子—应用规则学习算法识别有毒的蘑菇
5.4.1 第1步—收集数据
5.4.2 第2步—探索和准备数据
5.4.3 第3步—基于数据训练模型
5.4.4 第4步—评估模型的性能
5.4.5 第5步—提高模型的性能
5.5 总结
第6章 预测数值型数据—回归方法
6.1 理解回归
6.1.1 简单线性回归
6.1.2 普通最小二乘估
6.1.3 相关性
6.1.4 多元线性回
6.2 例子—应用线性回归预测医疗费用
6.2.1 第1步—收集数据
6.2.2 第2步—探索和准备数
6.2.3 第3步—基于数据训练模型
6.2.4 第4步—评估模型的性能
6.2.5 第5步—提高模型的性能
6.3 理解回归树和模型
6.4 例子—用回归树和模型树估计葡萄酒的质量
6.4.1 第1步—收集数据
6.4.2 第2步—探索和准备数据
6.4.3 第3步—基于数据训练模型
6.4.4 第4步—评估模型的性能
6.4.5 第5步—提高模型的性能
6.5 总结
第7章 黑箱方法—神经网络和支持向量
7.1理解神经网络
7.1.1从生物神经元到人工神经元
7.1.2激活函数
7.1.3网络拓扑
7.1.4用后向传播训练神经网络
7.2例子—用人工神经网络对混凝土的强度进行建
7.2.1第1步—收集数据
7.2.2第2步—探索和准备数据
7.2.3第3步—基于数据训练模型
7.2.4第4步—评估模型的性能
7.2.5第5步—提高模型的性能
7.3理解支持向量机
7.3.1用超平面分类
7.3.2对非线性空间使用核函数
7.4例子—用支持向量机进行光学字符识别
7.4.1第1步—收集数据
7.4.2第2步—探索和准备数
7.4.3第3步—基于数据训练模型
7.4.4第4步—评估模型的性能
7.4.5第5步—提高模型的性能
7.5总结
第8章 探寻模式—基于关联规则的购物篮分析
8.1理解关联规则
8.1.1用于关联规则学习的Apriori算法
8.1.2度量规则兴趣度—支持度和置信度
8.1.3用Apriori原则建立规则
8.2例子—用关联规则确定经常一起购买的食品杂货
8.2.1第1步—收集数据
8.2.2第2步—探索和准备数
8.2.3第3步—基于数据训练模型
8.2.4第4步—评估模型的性能
8.2.5第5步—提高模型的性能
8.3总结
第9章 寻找数据的分组—k均值聚类
9.1理解聚类
9.1.1聚类—一种机器学习任务
9.1.2k均值聚类算法
9.2例子—用k均值聚类探寻青少年市场细分
9.2.1第1步—收集数据
9.2.2第2步—探索和准备数据
9.2.3第3步—基于数据训练模型
9.2.4第4步—评估模型的性能
9.2.5第5步—提高模型的性能
9.3总结
第10章 模型性能的评价
10.1 度量分类方法的性能
10.1.1 在R中处理分类预测数据
10.1.2 深入探讨混淆矩阵
10.1.3 使用混淆矩阵度量性能
10.1.4 准确率之外的其他性能度量指标
10.1.5 性能权衡的可视化
10.2 评估未来的性能
10.3 总结
第11章 提高模型的性能
11.1 调整多个模型来提高性能
11.2 使用元学习来提高模型的性能
11.2.1 理解集成学习
11.2.2 bagging
11.2.3 Boosting
11.2.4 随机森林
11.3 总结
第12章 其他机器学习主题
12.1 分析专用文件和数据库
12.1.1 读/写Excel、SAS、SPSS和Stata文件
12.1.2 查询SQL数据库中的数据
12.2 处理在线数据和服务
12.2.1 下载网页的所有文本
12.2.2 从网页爬取数据
12.3 处理特定领域的数据
12.3.1 分析生物信息学数据
12.3.2 分析和可视化网络数据
12.4 提高R语言的性能
12.4.1 处理非常大的数据集
12.4.2 使用并行处理来加快学习过程
12.4.3 GPU计算
12.4.4 部署优化的学习算法
12.5 总结