描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111590248
阿里云栖社区、百度、蒙牛乳业、神州数码等知名公司的6位技术专家力荐
手写识别程序怎么做?
如何实现人脸识别系统?
如何过滤垃圾邮件?
电子商务网站上猜你喜欢的商品是什么原理?如何实现?
电影网站如何去推荐符合用户喜好的电影?
如何利用机器学习对消费者的特性进行细分,从而更好地服务各细分市场的消费者?
银行如何去检测用户的*可能被盗了?
……
通过阅读本书,你将了解这些复杂问题背后的原理,甚至你都可以自己解决这些问题。
本书对读者的数学基础要求低,让读者可以以较低的门槛入门机器学习
本书涵盖机器学习的应用场景、编程步骤、Python开发包、算法模型性能评估,以及八大常用算法原理和七大实战案例演练
本书通过近100幅图,将晦涩难懂的数学概念生动地描述出来
以scikit-learn为核心,结合numpy、pandas和matplotlib开发包讲解
从数值回归到逻辑回归,从文档分类到人脸识别,都提供了实现代码
用通俗易懂的语言介绍机器学习算法,帮助读者理解每个算法的基本原理
帮助读者使用机器学习算法解决实际的工程应用问题
用大量的图示及实战案例介绍如何解决现实生活中的机器学习问题
本书通过通俗易懂的语言、丰富的图示和生动的实例,拨开了笼罩在机器学习上方复杂的数学“乌云”,让读者以较低的代价和门槛入门机器学习。
本书共分为11章,介绍了在Python环境下学习scikit-learn机器学习框架的相关知识,涵盖的主要内容有机器学习概述、Python机器学习软件包、机器学习理论基础、k-近邻算法、线性回归算法、逻辑回归算法、决策树、支持向量机、朴素贝叶斯算法、PCA算法和k-均值算法等。
本书适合有一定编程基础的读者阅读,尤其适合想从事机器学习、人工智能、深度学习及机器人相关技术的程序员和爱好者阅读。另外,相关院校和培训机构也可以将本书作为教材使用。
30秒极速了解本书精华内容:
- 1. 理论基础
机器学习的应用场景
机器学习编程的典型步骤
Python机器学习开发包:numpy、pandas和matplotlib
算法模型性能评估的指标和评估方法
- 2. 八大常用机器学习算法
k-近邻算法
线性回归算法
逻辑回归算法
决策树
支持向量机
朴素贝叶斯
PCA算法
k-均值算法
- 3. 七大实战演练案例
糖尿病检测
预测房价
乳腺癌检测
泰坦尼克号幸存者预测
文档类别预测
人脸识别
文档自动分类
前言
第1章 机器学习介绍 1
1.1 什么是机器学习 1
1.2 机器学习有什么用 2
1.3 机器学习的分类 3
1.4 机器学习应用开发的典型步骤 4
1.4.1 数据采集和标记 4
1.4.2 数据清洗 5
1.4.3 特征选择 5
1.4.4 模型选择 5
1.4.5 模型训练和测试 5
1.4.6 模型性能评估和优化 5
1.4.7 模型使用 6
1.5 复习题 6
第2章 Python机器学习软件包 7
2.1 开发环境搭建 7
2.2 IPython简介 8
2.2.1 IPython基础 8
2.2.2 IPython图形界面 13
2.3 Numpy简介 15
2.3.1 Numpy数组 15
2.3.2 Numpy运算 19
2.4 Pandas简介 32
2.4.1 基本数据结构 32
2.4.2 数据排序 34
2.4.3 数据访问 34
2.4.4 时间序列 36
2.4.5 数据可视化 36
2.4.6 文件读写 38
2.5 Matplotlib简介 38
2.5.1 图形样式 38
2.5.2 图形对象 40
2.5.3 画图操作 46
2.6 scikit-learn简介 51
2.6.1 scikit-learn示例 51
2.6.2 scikit-learn一般性原理和通用规则 55
2.7 复习题 56
2.8 拓展学习资源 57
第3章 机器学习理论基础 58
3.1 过拟合和欠拟合 58
3.2 成本函数 59
3.3 模型准确性 60
3.3.1 模型性能的不同表述方式 61
3.3.2 交叉验证数据集 61
3.4 学习曲线 62
3.4.1 实例:画出学习曲线 62
3.4.2 过拟合和欠拟合的特征 65
3.5 算法模型性能优化 65
3.6 查准率和召回率 66
3.7 F1 Score 67
3.8 复习题 67
第4章 k-近邻算法 69
4.1 算法原理 69
4.1.1 算法优缺点 69
4.1.2 算法参数 70
4.1.3 算法的变种 70
4.2 示例:使用k-近邻算法进行分类 70
4.3 示例:使用k-近邻算法进行回归拟合 72
4.4 实例:糖尿病预测 74
4.4.1 加载数据 74
4.4.2 模型比较 75
4.4.3 模型训练及分析 77
4.4.4 特征选择及数据可视化 78
4.5 拓展阅读 80
4.5.1 如何提高k-近邻算法的运算效率 80
4.5.2 相关性测试 80
4.6 复习题 81
第5章 线性回归算法 83
5.1 算法原理 83
5.1.1 预测函数 83
5.1.2 成本函数 84
5.1.3 梯度下降算法 84
5.2 多变量线性回归算法 86
5.2.1 预测函数 86
5.2.2 成本函数 87
5.2.3 梯度下降算法 88
5.3 模型优化 89
5.3.1 多项式与线性回归 89
5.3.2 数据归一化 89
5.4 示例:使用线性回归算法拟合正弦函数 90
5.5 示例:测算房价 92
5.5.1 输入特征 92
5.5.2 模型训练 93
5.5.3 模型优化 94
5.5.4 学习曲线 95
5.6 拓展阅读 96
5.6.1 梯度下降迭代公式推导 96
5.6.2 随机梯度下降算法 96
5.6.3 标准方程 97
5.7 复习题 97
第6章 逻辑回归算法 98
6.1 算法原理 98
6.1.1 预测函数 98
6.1.2 判定边界 99
6.1.3 成本函数 100
6.1.4 梯度下降算法 102
6.2 多元分类 102
6.3 正则化 103
6.3.1 线性回归模型正则化 103
6.3.2 逻辑回归模型正则化 104
6.4 算法参数 104
6.5 实例:乳腺癌检测 106
6.5.1 数据采集及特征提取 106
6.5.2 模型训练 108
6.5.3 模型优化 110
6.5.4 学习曲线 111
6.6 拓展阅读 113
6.7 复习题 114
第7章 决策树 115
7.1 算法原理 115
7.1.1 信息增益 116
7.1.2 决策树的创建 119
7.1.3 剪枝算法 120
7.2 算法参数 121
7.3 实例:预测泰坦尼克号幸存者 122
7.3.1 数据分析 122
7.3.2 模型训练 123
7.3.3 优化模型参数 124
7.3.4 模型参数选择工具包 127
7.4 拓展阅读 130
7.4.1 熵和条件熵 130
7.4.2 决策树的构建算法 130
7.5 集合算法 131
7.5.1 自助聚合算法Bagging 131
7.5.2 正向激励算法boosting 131
7.5.3 随机森林 132
7.5.4 ExtraTrees算法 133
7.6 复习题 133
第8章 支持向量机 134
8.1 算法原理 134
8.1.1 大间距分类算法 134
8.1.2 松弛系数 136
8.2 核函数 138
8.2.1 简单的核函数 138
8.2.2 相似性函数 140
8.2.3 常用的核函数 141
8.2.4 核函数的对比 142
8.3 scikit-learn里的SVM 144
8.4 实例:乳腺癌检测 146
8.5 复习题 149
第9章 朴素贝叶斯算法 151
9.1 算法原理 151
9.1.1 贝叶斯定理 151
9.1.2 朴素贝叶斯分类法 152
9.2 一个简单的例子 153
9.3 概率分布 154
9.3.1 概率统计的基本概念 154
9.3.2 多项式分布 155
9.3.3 高斯分布 158
9.4 连续值的处理 159
9.5 实例:文档分类 160
9.5.1 获取数据集 160
9.5.2 文档的数学表达 161
9.5.3 模型训练 163
9.5.4 模型评价 165
9.6 复习题 167
第10章 PCA算法 168
10.1 算法原理 168
10.1.1 数据归一化和缩放 169
10.1.2 计算协方差矩阵的特征向量 169
10.1.3 数据降维和恢复 170
10.2 PCA 算法示例 171
10.2.1 使用Numpy模拟PCA计算过程 171
10.2.2 使用sklearn进行PCA降维运算 173
10.2.3 PCA的物理含义 174
10.3 PCA 的数据还原率及应用 175
10.3.1 数据还原率 175
10.3.2 加快监督机器学习算法的运算速度 176
10.4 实例:人脸识别 176
10.4.1 加载数据集 176
10.4.2 一次失败的尝试 179
10.4.3 使用PCA来处理数据集 182
10.4.4 终结果 185
10.5 拓展阅读 189
10.6 复习题 189
第11章 k-均值算法 190
11.1 算法原理 190
11.1.1 k-均值算法成本函数 191
11.1.2 随机初始化聚类中心点 191
11.1.3 选择聚类的个数 192
11.2 scikit-learn里的k-均值算法 192
11.3 使用k-均值对文档进行聚类分析 195
11.3.1 准备数据集 195
11.3.2 加载数据集 196
11.3.3 文本聚类分析 197
11.4 聚类算法性能评估 200
11.4.1 Adjust Rand Index 200
11.4.2 齐次性和完整性 201
11.4.3 轮廓系数 203
11.5 复习题 204
后记 205
前言
机器学习是近年来非常热门的方向,然而普通的程序员想要转行机器学习却困难重重。回想起来,笔者在刚开始学习机器学习时,一上来就被一大堆数学公式和推导过程所折磨,这样的日子至今还历历在目。当时笔者也觉得机器学习是个门槛非常高的学科。但实际上,在机器学习的从业人员里,究竟有多少人需要从头去实现一个算法?又有多少人有机会去发明一个新算法?从一开始就被细节和难点缠住,这严重打击了想进入机器学习领域新人的热情和信心。
本书就是要解决这个问题。笔者希望尽量通过通俗的语言去描述算法的工作原理,并使用scikit-learn工具包演示算法的使用,以及算法所能解决的问题,给那些非科班出身而想半路“杀进”人工智能领域的程序员,以及对机器学习感兴趣的人提供一本入门的书籍。
当然,这里不是否认数学和算法实现的重要性,毕竟它们是人工智能领域的基础学科方向。万事开头难,只有打开了一扇门,才能发现一个新的五彩缤纷的世界。在这个世界里,我们可以吃到新口味的面包,也能认识那些做面包给别人吃的人。希望这本书能帮助读者打开机器学习的这扇门。
本书特色
1.用通俗易懂的语言介绍机器学习算法的原理,符合初学者的认知规律
本书讲解时首先会用通俗易懂的语言介绍常用的机器学习算法,帮助读者直观地理解每个算法的基本原理,然后用大量的图示及实例介绍如何使用scikit-learn工具包解决现实生活中的机器学习问题。这种由浅入深、循序渐进的讲授方式,完全遵循了初学者对机器学习算法的认知规律。
2.丰富的示例图片,可以帮助读者更加直观地理解算法背后的原理
机器学习以其背后复杂的数学原理及异常复杂的算法推导和证明过程而吓退了一大批读者。一图胜千言,本书给出了大量的图示,用图片的方式形象地介绍了算法的基本原理,让读者对算法有更加直观的理解。这样就把复杂的数学公式和冗长的文字描述浓缩到一张张图片中,有效地降低了学习的门槛。
3.实例丰富,可以帮助读者使用机器学习算法解决工程应用问题
手写识别程序怎么做?怎么实现人脸识别系统?怎么过滤垃圾邮件?电子商务网站上猜你喜欢的商品是什么原理?怎么实现的?电影网站怎样去推荐符合用户喜好的电影?怎么利用机器学习对消费者的特性进行细分,从而更好地服务好各细分市场的消费者?银行怎样去检测用户的信用卡可能被盗了?通过阅读本书,读者将了解到这些复杂问题背后的原理,甚至你都可以自己解决这些问题。
本书内容介绍
第1章机器学习介绍,涵盖了机器学习的定义、应用场景及机器学习的分类,并通过一个简单的示例,让读者了解机器学习的典型步骤和机器学习领域的一些专业术语。
第2章Python机器学习软件包,介绍了scikit-learn开发环境的搭建步骤,以及IPython、Numpy、Pandas和Matplotlib等软件包的基础知识,并通过一个scikit-learn机器学习实例介绍了scikit-learn的一般性原理和通用规则。
第3章机器学习理论基础,介绍了算法模型性能评估的指标和评估方法等理论基础。本章内容是本书关键的理论基础知识,对理解本书其他章节的内容非常重要。
第4章k-近邻算法,介绍了一个有监督的机器学习算法,即k-近邻算法。该算法可以解决分类问题,也可以解决回归问题。
第5章线性回归算法,介绍了单变量线性回归算法和多变量线性回归算法的原理,以及通过梯度下降算法迭代求解线性回归模型,并给出一个房价预测的实例。另外,本章对成本函数和使用线性回归算法对数据进行拟合也做了讲解。
第6章逻辑回归算法,介绍了逻辑回归算法的原理及成本函数。在本章中主要解决的问题有:逻辑回归算法的原理是什么?怎样使用梯度下降算法解决迭代求解逻辑回归算法的模型参数?什么是正则化?正则化能解决什么问题?L1范数和 L2 范数作为模型正则项有什么区别?如何使用逻辑回归算法解决乳腺癌检测问题?
第7章决策树,主要介绍了决策树的算法原理和算法参数,并给出了一个预测实例,后对集合算法做了必要讲解。
第8章支持向量机,主要介绍了支持向量机的基本算法原理及常用核函数,并给出了用支持向量机来解决乳腺癌检测问题的实例。
第9章朴素贝叶斯算法,首先从贝叶斯定理谈起,引入了朴素贝叶斯分类法;然后通过一个简单的例子说明了算法的基本原理;接着介绍了概率分布的概念及几种典型的概率分布;后通过一个文档分类实例来说明朴素贝叶斯算法的应用。
第10章PCA算法,首先介绍了PCA的算法原理;然后通过一个简单的模拟运算过程帮助读者理解该算法的原理和实现步骤;后介绍了PCA算法背后的物理含义。本章在讲解的过程中顺便给读者推荐了一些优秀的线性代数资源,供读者参考。
第11章k-均值算法,首先介绍了该算法的基本原理及关键迭代步骤;然后通过一个简单的例子,介绍了如何使用scikit-learn中的k-均值算法解决聚类问题;后使用一个文本聚类分析的例子介绍了k-均值算法的应用,并介绍了典型的无监督机器学习算法的性能评估指标。
如何更好地使用本书
如果你只是好奇机器学习背后的原理,大可只阅读书中的文字部分,而跳过代码实现环节;如果你是想用本书敲开机器学习这扇大门,并且未来想从事这一行业,那么建议你系统地阅读本书,而且要亲自动手完成书中的所有实例。本书提供了书中所有实例的完整源代码,建议你认真阅读这些源代码,并亲自动手运行这些代码,还可以调整参数,看看结果有什么变化,后再独立把这些实例实现一遍。
阅读本书需要的知识储备
阅读本书,建议你好学习过Python 语言,即便是两年前学的,学过后就算没怎么用也没有关系。如果你不熟悉Python语言,那么好有其他编程语言基础,如C 或Java语言等。
本书读者对象
1.有一定编程经验,而不满足于永远在“搬砖”的软件工程师
你是不是厌倦了每天重复“搬砖”的过程?你是不是想提高职业的溢价?本书或许可以帮助你打开一扇大门。人工智能在可以预见的未来有巨大的发展前景。特别是近几年,层出不穷的开源机器学习框架不断涌现出来,云计算和分布式计算能力的进一步提升,为人工智能应用于更广泛的领域提供了必要的基础。在可以预见的未来,人工智能领域对机器学习工程师的需求将急剧上升。如果本书能帮助你打开机器学习领域的这扇大门,让你能利用机器学习的知识解决实际问题,这将是笔者的荣耀。
2.对这个世界充满好奇的人
笔者之前在某电商网站上搜索了某款手机,之后上网时有大量的网站广告都在向笔者展示手机及其相关产品。这些网站是怎么知道笔者近期想买手机的?笔者常去的电影网站每次都能给笔者推荐一些符合笔者“口味”的电影。这是如何做到的?本书便可以让你以很低的门槛了解这些问题背后的原理,甚至你也可以自己动手做一个,玩一玩。
本书虽然有大量的程序示例代码,但是笔者通过通俗易懂的讲述,并配以大量的图示,让这本书的阅读门槛很低,甚至可以作为本科普读物去阅读。可以说,这本书几乎适合所有对这个世界充满好奇的人阅读,尤其是那些对人工智能充满好奇的人,以及对机器学习算法感兴趣的人。
本书源代码获取方式
本书涉及的源代码文件需要读者自行下载。请读者登录机械工业出版社华章公司的网站www.hzbook.com,然后搜索到本书页面,找到下载模块下载即可。
因作者水平和成书时间所限,本书难免存有疏漏和不当之处,敬请各位读者指正。读者在阅读本书时若有疑问,可以发电子邮件到[email protected],以获得帮助。
编著者
机器学习方面的图书已经出版了多本,但要找一本写得通俗易懂,容易入门的却有点难。而本书恰恰就是一本这样的书,非常值得推荐给入门读者阅读。书中介绍了常见的机器学习算法,并给出了多个实例,不但可以让读者理解相关算法的原理,而且还可以在作者的引领下动手实践。
——阿里云栖社区技术专家 孙言东
当前,人工智能是一个热门话题,这使得驱动其发展的机器学习和深度学习等技术也变得炙手可热。而学习这些技术的门槛不低,有相当难度。可喜的是,本书将这个门槛大大地降低了,读者不会一上来就被一大堆数学公式和推导过程折磨,非常值得一读。
——百度(中国)有限公司高级研发工程师 刘凡
特征是对现实世界的抽象,算法是对内嵌逻辑的还原,这个过程的量化是机器学习要解决的问题。这虽然是个有趣的领域,但却像哲学遇到数学后的化学反应一样,难以窥其堂奥。你有两种选择,一种是从头做起,先研习数理后看算法,*后再和应用场景建立关联;另一种是由果而因,直接了解不同模型对于不同场景的存在意义,再有针对性地深入探究其背后的数学原理。相信后者事半功倍,但前提是你需要有一个先能抽丝剥茧地梳理线索,而后能通俗易懂地讲故事的好帮手。这就是我看这本书的价值所在,不仅由浅入深,环环相扣,可贵之处更在于经典案例在不同章节中穿插展现,在不同模型下对比分析,前后关联,循循善诱,不仅是一本初学者入门的极佳读物,而且也是业内朋友随身携带的工具好书。
——蒙牛乳业数据分析总监 陈源
机器学习是近年的技术热点,市场空间非常大,但其学习门槛不低。由于计算机是一门实践学科,没有真正实现运行,则很难理解算法的精髓。而这本书正好满足了这两个特点:用深入浅出的讲解帮助初学者学习理论知识;用大量有益的实例带领读者实践,并检验学习效果。无论是机器学习的入门人员,还是有一定基础的进阶者,均能从本书中有所获益。
——神州数码云计算有限公司技术总监 戴剑
本书作者给读者贡献了一本通俗易懂的机器学习入门图书。你只需要具备基本的Python编程知识即可阅读本书。读完本书,虽然不能保证你能获得kaggle竞赛奖金,但完全可以保证能让你轻松地参加kaggle竞赛,而且大概率会排在前30%的名次内。如果你是一名程序员,又对机器学习感兴趣,那么本书非常值得你阅读。
——Polycom资深程序员/IT畅销书作者 刘京华
这是一本有趣的书。L1范数和L2范数作为正则项,为什么对模型参数有不同的影响?熟悉闽南地区中秋博饼规则的读者,有没有好奇博出状元和对堂的概率是多少?连续多次通过骰子赌大小,*终输赢在额度上有什么规律?本书对这些问题的探讨,让我想起了吴军老师的《数学之美》一书。一本技术图书要写得有趣很不容易,但本书做到了,值得各位读者阅读。
——threedweb.cn创始人/机器学习畅销书作者 郑捷
评论
还没有评论。