产品特色
编辑推荐
大量Python库的参考
用丰富的案例,细析机器学习技巧与方法
一个基于场景的教程,带你承袭正确的思维方式(数据探索)
内容简介
《机器学习系统设计》是实用的Python机器学习教程,结合大量案例,介绍了机器学习的各方面知识。《机器学习系统设计》不仅告诉你“怎么做”,还会分析“为什么”,力求帮助读者掌握多种多样的机器学习Python库,学习构建基于Python的机器学习系统,并亲身实践和体验机器学习系统的功能。
《机器学习系统设计》适合需要机器学习技术的Python开发人员、计算机科学研究人员、数据科学家、人工智能程序员,以及统计程序员阅读参考。
作者简介
Willi Richert,机器学习和机器人学博士,目前任职于微软Bing搜索核心研发团队。他从事多种机器学习领域的研究,包括主动学习和统计机器翻译。
Luis Pedro Coelho,计算生物学家,主要关注生物图像信息学和大规模图像数据的处理,致力于生物标本图像分析中机器学习技术的应用,他还是Python计算机视觉库mahotas的主要开发人员。他于1998年开始开发开源软件,2004年起从事Python开发,并为多个Python开源库贡献了代码。另外,Luis拥有机器学习领域世界前列的卡内基-梅隆大学的博士学位,并发表过多篇科学论文。
内页插图
目录
目 录
第1章 Python机器学习入门 1
1.1 梦之队:机器学习与Python 1
1.2 这本书将教给你什么(以及不会教什么) 2
1.3 遇到困难的时候怎么办 3
1.4 开始 4
1.4.1 NumPy、SciPy和Matplotlib简介 4
1.4.2 安装Python 5
1.4.3 使用NumPy和SciPy智能高效地处理数据 5
1.4.4 学习NumPy 5
1.4.5 学习SciPy 9
1.5 我们第一个(极小的)机器学习应用 10
1.5.1 读取数据 10
1.5.2 预处理和清洗数据 11
1.5.3 选择正确的模型和学习算法 12
1.6 小结 20
第2章 如何对真实样本分类 22
2.1 Iris数据集 22
2.1.1 第一步是可视化 23
2.1.2 构建第一个分类模型 24
2.2 构建更复杂的分类器 28
2.3 更复杂的数据集和更复杂的分类器 29
2.3.1 从Seeds数据集中学习 29
2.3.2 特征和特征工程 30
2.3.3 最邻近分类 30
2.4 二分类和多分类 33
2.5 小结 34
第3章 聚类:寻找相关的帖子 35
3.1 评估帖子的关联性 35
3.1.1 不应该怎样 36
3.1.2 应该怎样 36
3.2 预处理:用相近的公共词语个数来衡量相似性 37
3.2.1 将原始文本转化为词袋 37
3.2.2 统计词语 38
3.2.3 词语频次向量的归一化 40
3.2.4 删除不重要的词语 41
3.2.5 词干处理 42
3.2.6 停用词兴奋剂 44
3.2.7 我们的成果和目标 45
3.3 聚类 46
3.3.1 K均值 46
3.3.2 让测试数据评估我们的想法 49
3.3.3 对帖子聚类 50
3.4 解决我们最初的难题 51
3.5 调整参数 54
3.6 小结 54
第4章 主题模型 55
4.1 潜在狄利克雷分配(LDA) 55
4.2 在主题空间比较相似度 59
4.3 选择主题个数 64
4.4 小结 65
第5章 分类:检测劣质答案 67
5.1 路线图概述 67
5.2 学习如何区分出优秀的答案 68
5.2.1 调整样本 68
5.2.2 调整分类器 68
5.3 获取数据 68
5.3.1 将数据消减到可处理的程度 69
5.3.2 对属性进行预选择和处理 70
5.3.3 定义什么是优质答案 71
5.4 创建第一个分类器 71
5.4.1 从k邻近(kNN)算法开始 71
5.4.2 特征工程 72
5.4.3 训练分类器 73
5.4.4 评估分类器的性能 74
5.4.5 设计更多的特征 74
5.5 决定怎样提升效果 77
5.5.1 偏差?方差及其折中 77
5.5.2 解决高偏差 78
5.5.3 解决高方差 78
5.5.4 高偏差或低偏差 78
5.6 采用逻辑回归 81
5.6.1 一点数学和一个小例子 81
5.6.2 在帖子分类问题上应用逻辑回归 83
5.7 观察正确率的背后:准确率和召回率 84
5.8 为分类器瘦身 87
5.9 出货 88
5.10 小结 88
第6章 分类II:情感分析 89
6.1 路线图概述 89
6.2 获取推特(Twitter)数据 89
6.3 朴素贝叶斯分类器介绍 90
6.3.1 了解贝叶斯定理 90
6.3.2 朴素 91
6.3.3 使用朴素贝叶斯进行分类 92
6.3.4 考虑未出现的词语和其他古怪情况 94
6.3.5 考虑算术下溢 95
6.4 创建第一个分类器并调优 97
6.4.1 先解决一个简单问题 97
6.4.2 使用所有的类 99
6.4.3 对分类器的参数进行调优 101
6.5 清洗推文 104
6.6 将词语类型考虑进去 106
6.6.1 确定词语的类型 106
6.6.2 用SentiWordNet成功地作弊 108
6.6.3 我们第一个估算器 110
6.6.4 把所有东西融合在一起 111
6.7 小结 112
第7章 回归:推荐 113
7.1 用回归预测房价 113
7.1.1 多维回归 116
7.1.2 回归里的交叉验证 116
7.2 惩罚式回归 117
7.2.1 L1和L2惩罚 117
7.2.2 在Scikit-learn中使用Lasso或弹性网 118
7.3 P大于N的情形 119
7.3.1 基于文本的例子 120
7.3.2 巧妙地设置超参数(hyperparameter) 121
7.3.3 评分预测和推荐 122
7.4 小结 126
第8章 回归:改进的推荐 127
8.1 改进的推荐 127
8.1.1 使用二值推荐矩阵 127
8.1.2 审视电影的近邻 129
8.1.3 组合多种方法 130
8.2 购物篮分析 132
8.2.1 获取有用的预测 133
8.2.2 分析超市购物篮 134
8.2.3 关联规则挖掘 136
8.2.4 更多购物篮分析的高级话题 137
8.3 小结 138
第9章 分类III:音乐体裁分类 139
9.1 路线图概述 139
9.2 获取音乐数据 139
9.3 观察音乐 140
9.4 用FFT构建第一个分类器 143
9.4.1 增加实验敏捷性 143
9.4.2 训练分类器 144
9.4.3 在多分类问题中用混淆矩阵评估正确率 144
9.4.4 另一种方式评估分类器效果:受试者工作特征曲线(ROC) 146
9.5 用梅尔倒频谱系数(MFCC)提升分类效果 148
9.6 小结 152
第10章 计算机视觉:模式识别 154
10.1 图像处理简介 154
10.2 读取和显示图像 155
10.2.1 图像处理基础 156
10.2.2 加入椒盐噪声 161
10.2.3 模式识别 163
10.2.4 计算图像特征 163
10.2.5 设计你自己的特征 164
10.3 在更难的数据集上分类 166
10.4 局部特征表示 167
10.5 小结 170
第11章 降维 171
11.1 路线图 171
11.2 选择特征 172
11.2.1 用筛选器检测冗余特征 172
11.2.2 用封装器让模型选择特征 178
11.3 其他特征选择方法 180
11.4 特征抽取 181
11.4.1 主成分分析(PCA) 181
11.4.2 PCA的局限性以及LDA会有什么帮助 183
11.5 多维标度法(MDS) 184
11.6 小结 187
第12章 大数据 188
12.1 了解大数据 188
12.2 用Jug程序包把你的处理流程分解成几个任务 189
12.2.1 关于任务 189
12.2.2 复用部分结果 191
12.2.3 幕后的工作原理 192
12.2.4 用Jug分析数据 192
12.3 使用亚马逊Web服务(AWS) 194
12.3.1 构建你的第一台机器 195
12.3.2 用starcluster自动创建集群 199
12.4 小结 202
附录A 更多机器学习知识 203
A.1 在线资源 203
A.2 参考书 203
A.2.1 问答网站 203
A.2.2 博客 204
A.2.3 数据资源 205
A.2.4 竞争日益加剧 205
A.3 还剩下什么 205
A.4 小结 206
索引 207
前言/序言
如果你手里(或者你的电子阅读器里)有这本书,可以说,这是一个幸运的巧合。毕竟,每年有几百万册图书印刷出来,供数百万读者阅读,而你恰好选择了这一本。可以说,正是机器学习算法引领你来阅读这本书(或者说是把这本书引领到你面前)。而我们作为本书的作者,很高兴看到你愿意了解更多的“怎么做”和“为什么”。
本书大部分内容都将涉及“怎么做”。例如,怎么处理数据才能让机器学习算法最大限度地利用它们?怎么选择正确的算法来解决手头的问题?
我们偶尔也会涉及“为什么”。例如,为什么正确评估很重要?为什么在特定情形下一个算法比另一个算法的效果更好?
我们知道,要成为该领域的专家还有很多知识要学。毕竟,本书只介绍了一些“怎么做”和极小一部分“为什么”。但在最后,我们希望这些内容可以帮你“启航”,然后快速前行。
本书内容
第1章通过一个非常简单的例子介绍机器学习的基本概念。尽管很简单,但也可能会有过拟合的风险,这对我们提出了挑战。
第2章讲解了使用真实数据解决分类问题的方法,在这里我们对计算机进行训练,使它能够区分不同类型的花朵。
第3章讲解了词袋方法的威力,我们可以在没有真正理解帖子内容的情况下,用它来寻找相似的帖子。
第4章让我们超越将每个帖子分配给单个簇的方式。由于真实的文本可以处理多个主题,我们可以看到如何把帖子分配到几个主题上。
第5章讲解了如何用逻辑回归判定用户的答案是好还是坏。在这个情景的背后,我们将学会用偏差-方差的折中调试机器学习模型。
第6章介绍了朴素贝叶斯的工作原理,以及如何用它对推文进行分类,来判断推文中的情感是正面的还是负面的。
第7章讨论了一个处理数据的经典课题,但它在今天仍然有意义。我们用它构建了一个推荐系统,这个系统根据用户所输入的喜欢和不喜欢的信息,为用户推荐新的商品。
第8章同时使用多种方法改进推荐效果。我们还可以看到如何只根据购物信息构建推荐系统,而不需要用户的评分数据(用户并不总会提供这一信息)。
第9章举例说明,如果有人把我们收集而成的庞大音乐库弄乱了,那么为歌曲建立次序的唯一希望就是让机器来对歌曲分类。你会发现,有时信任别人的专长比我们自己构建特征更好。
第10章讲解了如何在处理图像这个特定情景下应用分类方法。这个领域又叫做模式识别。
第11章告诉我们还有其他什么方法可以帮我们精简数据,使机器学习算法能够处理它们。
第12章讲解了不断膨胀的数据规模,以及这为何会为数据分析造成难题。在本章中,我们利用多核或计算集群,探索了一些更大规模数据的处理方法。另外,我们还介绍了云计算(将亚马逊的Web服务当做云计算提供商)。
附录A罗列了一系列机器学习的优质资源。
阅读需知
本书假定读者了解Python,并且知道如何利用easy_install或pip安装库文件。我们并不依赖于任何高等数学知识,如微积分或矩阵代数。
总体而言,本书将使用以下版本的软件,不过如果你使用任何新近版本,也没有问题。
。 Python 2.7
。NumPy 1.6.2
。SciPy 0.11
。Scikit-learn 0.13
读者对象
本书适合想通过开源库来学习机器学习的Python程序员阅读参考。我们会通过示例概述机器学习的基本模式。
本书也适用于想用Python构建机器学习系统的初学者。Python是一个能够快速构建原型系统的灵活语言,它背后的算法都是由优化过的C或C++编写而成。因此,它的代码运行快捷,并且十分稳健,完全可以用在实际产品中。
机器学习系统设计 电子书 下载 mobi epub pdf txt