描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111623175
本书各个章节彼此独立,以便读者可以轻松地查阅所需内容。 全书从处理过程和获取结果的角度讨论了数据科学和数学分析的相关内容, 还介绍了Python的重要功能,包括Python入门知识。本书涵盖机器学习、模式识别和人工智能的基本要素,它们是本书其余部分所使用的算法和实现的基础;还介绍了使用聚类技术和分类算法进行回归分析,探索了分层聚类、决策树、集合技术、降维技术和推荐系统;*后讨论了支持向量机算法以及回归和分类等应用程序中重要的核心技巧。
前言
读者指南
第1章 数据科学家的试验与磨难 1
1.1 数据?科学?数据科学! 1
1.2 数据科学家:现代鹿角兔 4
1.3 数据科学工具 9
1.4 从数据到洞察力:数据科学工作流 11
1.4.1 识别问题 13
1.4.2 获取数据 13
1.4.3 数据挖掘 13
1.4.4 建模与评价 13
1.4.5 表征与互动 14
1.4.6 数据科学:一个迭代过程 14
1.5 总结 15
第2章 Python:完全不同的编程语言 16
2.1 为何是Python?为何不是? 17
2.1.1 使用Shell或不使用Shell 19
2.1.2 使用iPython/Jupyter Notebook 20
2.2 初探Python 21
2.2.1 基本类型 21
2.2.2 数字 21
2.2.3 字符串 22
2.2.4 复数 23
2.2.5 列表 24
2.2.6 元组 27
2.2.7 字典 29
2.3 控制流 31
2.3.1 if … elif … else 31
2.3.2 while 32
2.3.3 for 33
2.3.4 try… except 34
2.3.5 函数 36
2.3.6 脚本和模块 39
2.4 计算和数据处理 41
2.4.1 矩阵操作和线性代数 41
2.4.2 NumPy数组和矩阵 42
2.4.3 索引和切片 45
2.5 “熊猫”前来救驾 46
2.6 绘图和可视化库:Matplotlib 50
2.7 总结 52
第3章 能够探知的机器:机器学习和模式识别 53
3.1 认知模式 53
3.2 人工智能和机器学习 54
3.3 数据很好,但也需要其他支持 56
3.4 学习、预测和分类 57
3.5 机器学习和数据科学 58
3.6 特征选择 59
3.7 偏差、差异和正规化:平衡法 60
3.8 一些有用的措施:距离和相似性 61
3.9 注意“维度的诅咒” 64
3.10 Scikit-learn是我们的朋友 67
3.11 训练和测试 70
3.12 交叉验证 72
3.13 总结 75
第4章 关系难题:回归 76
4.1 变量之间的关系:回归 76
4.2 多元线性回归 78
4.3 普通最小二乘法 80
4.4 大脑与身体:单变量回归 83
4.5 对数变换 90
4.6 使任务更容易:标准化和扩展 93
4.6.1 正则化或单位缩放 94
4.6.2 z-Score缩放 95
4.7 多项式回归 96
4.8 方差–偏差权衡 99
4.9 收缩:选择运算符和Ridge 101
4.10 总结 105
第5章 鹿角兔和野兔:聚类 107
5.1 聚类 107
5.2 k–均值聚类 108
5.2.1 聚类验证 110
5.2.2 k–均值实际操作 112
5.3 总结 115
第6章 独角兽和马:分类 116
6.1 分类 116
6.1.1 混淆矩阵 117
6.1.2 ROC和AUC 119
6.2 使用KNN算法分类 121
6.3 逻辑回归分类器 126
6.3.1 逻辑回归的解释 129
6.3.2 逻辑回归的应用 130
6.4 使用朴素贝叶斯算法进行分类 136
6.4.1 朴素贝叶斯分类器 139
6.4.2 朴素贝叶斯分类的应用 140
6.5 总结 144
第7章 决策:分层聚类、决策树和集成技术 145
7.1 分层聚类 145
7.2 决策树 150
7.3 集成技术 160
7.3.1 套袋 164
7.3.2 助推 164
7.3.3 随机森林 165
7.3.4 层叠和混合 166
7.4 集成技术实践 167
7.5 总结 171
第8章 少即多:降维 172
8.1 降维 172
8.2 主成分分析 175
8.2.1 PCA实践 177
8.2.2 PCA在鸢尾花数据集中的应用 180
8.3 奇异值分解 183
8.4 推荐系统 187
8.4.1 基于内容的过滤实践 188
8.4.2 协同过滤实践 191
8.5 总结 195
第9章 内核秘诀:支持向量机 197
9.1 支持向量机和内核方法 197
9.1.1 支持向量机 199
9.1.2 内核的技巧 204
9.1.3 SVM实践:回归 205
9.1.4 SVM实践:分类 208
9.2 总结 212
附录 Scikit-learn中的管道 213
参考文献 217
平心而论,感兴趣的读者总可以找到很多非常有用的工具和平台,例如优秀的开源R项目或SPSS?、SAS?等专业项目。这些都非常值得推荐,它们有各自的优势(当然也有弱点)。但是,鉴于我在实现和解释算法方面的经验,我发现Python是一个非常具有可塑性的编程工具。这让我想起与一位在一家大型咨询公司工作的经验丰富的分析师的对话,他提到用Python完成所有机器学习或数据科学相关的任务是不可能的,我其实并不赞同他的观点。诚然,虽然对于某些特定任务可能有更合适的工具,但将它们全部集中在一个工具中去实现确实是一项艰巨的工作。考虑到这一点,本书中使用Python语言来证明我的选择并没有错:Python是一种流行的多功能脚本和面向对象的语言,它易于使用,并且拥有一个由开发人员和爱好者组成的大型活跃社区,还有丰富多彩的iPython/ Jupyter Notebook交互式计算环境支持,它已经被商界和学术界使用了很长一段时间。我们将在本书中展示用Python进行机器学习以及数据科学分析的无限可能。
本书的主要目的是向读者介绍数据科学和分析中使用的一些主要概念,以及使用Python开发的工具,如Scikit-learn、Pandas、NumPy等。本书旨在为程序员和开发人员以及数学、物理、计算生物学和工程等科学领域的毕业生提供跨入数据科学和分析领域的桥梁。根据我的经验,我想读者目前所拥有的知识背景和技能是非常宝贵的财富。然而,在许多情况下,由于日常活动所需的纵向专业局限,大家的横向知识面难免有些模糊。因此,本书可以作为数据科学和分析领域的相关指南。本书将着重展示流行算法及其使用背后的概念和思想,但不会探讨它们在Python中的实现细节。如果确实有相关需求,请参考使用这些算法的开源系统是如何实现的。
本书中包含的示例已在Mac OS、Linux和Windows 7下的Python 3.5中进行了测试,并且对代码进行最少的更改,就可以使其在Python 2发行版中运行。作为参考,本书中使用的一些软件包的版本如下:
Python – 3.5.2
Pandas – 0.19.1
NumPy – 1.11.2
Scikit-learn – 0.18
StatsModels – 0.6.1
值得注意的是,我选择Continuum Analytics提供的Anaconda Python发行版,因为它可以在上面提到的3种计算机系统中安装,并且具有可以直接从发行版本中提供丰富的类库生态系统的优势,更重要的是,它几乎适用于所有用户。还有一些其他方法可以获得Python以及其他版本的软件,例如,直接来自Python软件基金会(Python Software Foundation),以及来自Enthought Canopy的版本,或者来自Homebrew等软件包管理器。Anaconda提供了一个简单的安装和维护软件的环境,为用户减少了很多麻烦。我假设读者通过脚本或在Shell中交互式地工作。
本书会将代码以如下形式显示:
我们使用一个尖括号(>)来表示Python Shell中显示的命令行终端提示符。请注意,在iPython交互式Shell或iPython / Jupyter Notebook中可以使用相同的命令,但外观和给人的感觉可能会有很大不同。
本书各个章节之间相互独立,以便读者可以轻松地将章节内容用作参考,而不像教科书那样上下文联系紧密。不可避免地,某些章节中会引用其他章节的内容,出现这种情况时我会适时指出。我还想借此机会声明,本书中所提供的代码实现并不是唯一的或最好的编程方式。编程就像写作,我们都知道26个英文字母如何书写,但这并不意味着我们都能写出莎士比亚的诗,这是一个创造性的过程,因此“条条大路通罗马”。我很高兴收到大家关于书中代码实现的反馈意见。
我们从使用过程和最终期望获得的结果的角度讨论数据科学和分析是什么,以此来开始本书的第1章。我们特别关注数据探索过程以及在应用算法和分析之前需要进行的数据清洗过程。
在第2章中,我们将复习Python语言的一些重要特性,目的是回顾一些重要的命令和说明,为本书的其余部分提供基础。这也将使我们有机会了解后面章节中将会使用的一些命令和指令。
在第3章中,我们将介绍机器学习、模式识别和人工智能的基本要素,这些要素是我们将在本书其余部分使用的算法和实现的基础。
学习到第4章时,我们已拥有了必要的基础,可以开始学习通过StatsModels和Scikit-learn使用Python实现回归分析。本章还介绍了使用广义回归线性模型的要点。
在第5章中我们讨论了聚类技术,而第6章则讨论了分类算法。这两章是数据科学工作流程的核心:聚类使我们能够以无监督的方式为数据分配标签;反过来,我们可以将这些标签用作分类算法中的目标。
在第7章中,我们介绍了分层聚类、决策树的使用以及套袋和助推等集成技术。值得注意的是,集成技术已成为数据科学家的常用工具,建议重点学习本章。
降维技术将在第8章中讨论。我们将介绍主成
评论
还没有评论。