机器学习算法的数学解析与Python实现
作者: 莫凡编著
出版时间:2020年版
内容简介
本书以机器学习的算法为主线,深入剖析算法的概念和数学原理,以通俗形象的语言进行讲解,让读者无须了解太多前置数学知识,就能看懂数学公式所表达的意思,从而快速掌握机器学习的思想和原理。本书首先介绍机器学习基本概念及工具,然后从概念、原理、Python实现、应用场景几个方面,详细剖析机器学习中主要的算法,如线性回归算法、Logistic回归算法、KNN算法、朴素贝叶斯算法、决策树算法、支持向量机算法、K-means聚类算法、神经网络、集成学习方法等。
目录
前言
第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