内容
学习机器学习的动机很多,可能是实际工作需要,可能是兴趣爱好,也可能是学业要求,从每种动机的角度看,这个问题都可能有不同的答案。我认同许多人所说的求知不能太功利这一观点,不过大家的时间和精力毕竟有限,就算不去追求投入产出比,至少也应该有一个学这门知识想要达到的目的。机器学习是更偏重于应用的学问,在当下的发展也确实使得机器学习越来越像一门技能,而不仅仅是技术。初学算法时我最想学的是里面的“最强算法”,不过在第1章我将介绍,机器学习算法没有最强的,只有最合适的,对于不同的问题,对应会有不同的最合适算法。所以,我们更需要关注的应该是问题,而不是算法本身。在本书中我选择介绍市面上成熟的机器学习算法包,通过现成的算法包,就能够根据实际要解决的问题直接选择所需要的机器学习算法,从而把注意力集中在对不同算法的选择上。本书的目标读者是想要学习机器学习的学生、程序员、研究人员或者爱好者,以及想要知道机器学习是什么、为什么和怎么用的所有读者。本书第1章介绍机器学习总体背景,第2章介绍配置环境,第3章到第10章彼此独立,每一章介绍一种具体的机器学习算法,读者可以直接阅读想要了解的算法,第11章介绍了集成学习方法,这是一种组合机器学习算法的方法,也是当前在实际使用中常见又十分有效的提升性能的做法。
作者
莫凡
新技术深度爱好者,曾经从事信息安全前沿技术跟踪研究和数据分析工作,在各类信息安全类技术期刊杂志发表文章五十余篇,现转为投身高端知识“白菜化”项目,希望能让将更多听起来高大上的名词沾一沾人间烟火,成为日常中生活真正用得上的知识。
目录
前言
第1章 机器学习概述 1
1.1 什么是机器学习 1
1.2 机器学习的几个需求层次 3
1.3 机器学习的基本原理 5
1.4 机器学习的基本概念 7
1.4.1 书中用到的术语介绍 7
1.4.2 机器学习的基本模式 11
1.4.3 优化方法 12
1.5 机器学习问题分类 14
1.6 常用的机器学习算法 15
1.7 机器学习算法的性能衡量指标 16
1.8 数据对算法结果的影响 18
第2章 机器学习所需的环境 20
2.1 常用环境 20
2.2 Python简介 21
2.2.1 Python的安装 23
2.2.2 Python的基本用法 24
2.3 Numpy简介 25
2.3.1 Numpy的安装 26
2.3.2 Numpy的基本用法 26
2.4 Scikit-Learn简介 27
2.4.1 Scikit-Learn的安装 28
2.4.2 Scikit-Learn的基本用法 28
2.5 Pandas简介 29
2.5.1 Pandas的安装 30
2.5.2 Pandas的基本用法 31
第3章 线性回归算法 33
3.1 线性回归:“钢铁直男”解决回归问题的正确方法 33
3.1.1 用于预测未来的回归问题 35
3.1.2 怎样预测未来 38
3.1.3 线性方程的“直男”本性 40
3.1.4 最简单的回归问题—线性回归问题 44
3.2 线性回归的算法原理 46
3.2.1 线性回归算法的基本思路 46
3.2.2 线性回归算法的数学解析 48
3.2.3 线性回归算法的具体步骤 53
3.3 在Python中使用线性回归算法 54
3.4 线性回归算法的使用场景 60
第4章 Logistic回归分类算法 61
4.1 Logistic回归:换上“S型曲线马甲”的线性回归 61
4.1.1 分类问题:选择困难症患者的自我救赎 63
4.1.2 Logistic函数介绍 66
4.1.3 此回归非彼回归:“LR”辨析 70
4.2 Logistic回归的算法原理 71
4.2.1 Logistic回归算法的基本思路 71
4.2.2 Logistic回归算法的数学解析 74
4.2.3 Logistic回归算法的具体步骤 78
4.3 在Python中使用Logistic回归算法 78
4.4 Logistic回归算法的使用场景 81
第5章 KNN分类算法 82
5.1 KNN分类算法:用多数表决进行分类 82
5.1.1 用“同类相吸”的办法解决分类问题 84
5.1.2 KNN分类算法的基本方法:多数表决 86
5.1.3 表决权问题 89
5.1.4 KNN的具体含义 89
5.2 KNN分类的算法原理 90
5.2.1 KNN分类算法的基本思路 90
5.2.2 KNN分类算法的数学解析 93
5.2.3 KNN分类算法的具体步骤 94
5.3 在Python中使用KNN分类算法 95
5.4 KNN分类算法的使用场景 96
第6章 朴素贝叶斯分类算法 98
6.1 朴素贝叶斯:用骰子选择 98
6.1.1 从统计角度看分类问题 99
6.1.2 贝叶斯公式的基本思想 102
6.1.3 用贝叶斯公式进行选择 104
6.2 朴素贝叶斯分类的算法原理 106
6.2.1 朴素贝叶斯分类算法的基本思路 106
6.2.2 朴素贝叶斯分类算法的数学解析 108
6.2.3 朴素贝叶斯分类算法的具体步骤 111
6.3 在Python中使用朴素贝叶斯分类算法 111
6.4 朴素贝叶斯分类算法的使用场景 112
第7章 决策树分类算法 114
7.1 决策树分类:用“老朋友”if-else进行选择 114
7.1.1 程序员的选择观:if-else 116
7.1.2 如何种植一棵有灵魂的“树” 118
7.1.3 决策条件的选择艺术 119
7.1.4 决策树的剪枝问题 122
7.2 决策树分类的算法原理 125
7.2.1 决策树分类算法的基本思路 125
7.2.2 决策树分类算法的数学解析 127
7.2.3 决策树分类算法的具体步骤 133
7.3 在Python中使用决策树分类算法 134
7.4 决策树分类算法的使用场景 135
第8章 支持向量机分类算法 137
8.1 支持向量机:线性分类器的“王者” 137
8.1.1 距离是不同类别的天然间隔 139
8.1.2 何为“支持向量” 140
8.1.3 从更高维度看“线性不可分” 142
8.2 支持向量机分类的算法原理 146
8.2.1 支持向量机分类算法的基本思路 146
8.2.2 支持向量机分类算法的数学解析 150
8.2.3 支持向量机分类算法的具体步骤 153
8.3 在Python中使用支持向量机分类算法 154
8.4 支持向量机分类算法的使用场景 156
第9章 K-means聚类算法 157
9.1 用投票表决实现“物以类聚” 157
9.1.1 聚类问题就是“物以类聚”的实施问题 159
9.1.2 用“K”来决定归属类别 162
9.1.3 度量“相似”的距离 164
9.1.4 聚类问题中的多数表决 165
9.2 K-means聚类的算法原理 168
9.2.1 K-means聚类算法的基本思路 168
9.2.2 K-means聚类算法的数学解析 169
9.2.3 K-means聚类算法的具体步骤 170
9.3 在Python中使用K-means聚类算法 171
9.4 K-means聚类算法的使用场景 172
第10章 神经网络分类算法 174
10.1 用神经网络解决分类问题 174
10.1.1 神经元的“内心世界” 177
10.1.2 从神经元看分类问题 180
10.1.3 神经网络的“细胞”:人工神经元 181
10.1.4 构成网络的魔力 184
10.1.5 神经网络与深度学习 188
10.2 神经网络分类的算法原理 188
10.2.1 神经网络分类算法的基本思路 188
10.2.2 神经网络分类算法的数学解析 190
10.2.3 神经网络分类算法的具体步骤 193
10.3 在Python中使用神经网络分类算法 194
10.4 神经网络分类算法的使用场景 195
第11章 集成学习方法 197
11.1 集成学习方法:三个臭皮匠赛过诸葛亮 197
11.1.1 集成学习方法与经典机器学习算法的关系 198
11.1.2 集成学习的主要思想 199
11.1.3 几种集成结构 200
11.2 集成学习方法的具体实现方式 202
11.2.1 Bagging算法 202
11.2.2 Boosting算法 202
11.2.3 Stacking算法 202
11.3 在Python中使用集成学习方法 203
11.4 集成学习方法的使用场景 205