书籍详情
机器学习算法原理与编程实践
作者:郑捷 著
出版社:电子工业出版社
出版时间:2015-10-01
ISBN:9787121273674
定价:¥88.00
购买这本书可以去
内容简介
本书是机器学习原理和算法编码实现的基础性读物,内容分为两大主线:单个算法的原理讲解和机器学习理论的发展变迁。算法除包含传统的分类、聚类、预测等常用算法之外,还新增了深度学习、贝叶斯网、隐马尔科夫模型等内容。对于每个算法,均包括提出问题、解决策略、数学推导、编码实现、结果评估几部分。数学推导力图做到由浅入深,深入浅出。结构上数学原理与程序代码一一对照,有助于降低学习门槛,加深公式的理解,起到推广和扩大机器学习的作用。
作者简介
郑捷,www.threedweb.cn网站负责人,研究方向是机器学习与自然语言处理。当前负责的核心产品是高精度自然语言认知系统的设计与研发,研发目标是高精度(识别率在85%~95%)的统一架构的NLP认知系统。
目录
第1章 机器学习的基础 1
1.1 编程语言与开发环境 2
1.1.1 搭建Python开发环境 2
1.1.2 安装Python算法库 4
1.1.3 IDE配置及其安装测试 5
1.2 对象、矩阵与矢量化编程 8
1.2.1 对象与维度 8
1.2.2 初识矩阵 10
1.2.3 矢量化编程与GPU运算 13
1.2.4 理解数学公式与NumPy矩阵运算 14
1.2.5 Linalg线性代数库 18
1.3 机器学习的数学基础 20
1.3.1 相似性的度量 21
1.3.2 各类距离的意义与Python实现 22
1.3.3 理解随机性 29
1.3.4 回顾概率论 30
1.3.5 多元统计基础 32
1.3.6 特征间的相关性 33
1.3.7 再谈矩阵——空间的变换 35
1.3.8 数据归一化 40
1.4 数据处理与可视化 42
1.4.1 数据的导入和内存管理 42
1.4.2 表与线性结构的可视化 45
1.4.3 树与分类结构的可视化 46
1.4.4 图与网络结构的可视化 47
1.5 Linux操作系统下部署Python机器学习开发环境 48
1.5.1 Linux发行版的选择 48
1.5.2 CentOS部署多版本Python实例 49
1.5.3 安装NumPy、SciPy、Matplotlib开发包 52
1.5.4 安装Scikit-Learn开发包 54
1.6 结语 55
第2章 中文文本分类 56
2.1 文本挖掘与文本分类的概念 56
2.2 文本分类项目 58
2.2.1 文本预处理 58
2.2.2 中文分词介绍 61
2.2.3 Scikit-Learn库简介 66
2.2.4 向量空间模型 70
2.2.5 权重策略:TF-IDF方法 71
2.2.6 使用朴素贝叶斯分类模块 74
2.2.7 分类结果评估 76
2.3 分类算法:朴素贝叶斯 78
2.3.1 贝叶斯公式推导 78
2.3.2 朴素贝叶斯算法实现 79
2.3.3 算法的改进 82
2.3.4 评估分类结果 82
2.4 分类算法:kNN 83
2.4.1 kNN算法原理 83
2.4.2 kNN算法的Python实现 86
2.4.3 评估分类结果 88
2.5 结语 88
第3章 决策树的发展 89
3.1 决策树的基本思想 89
3.1.1 从一个实例开始 90
3.1.2 决策树的算法框架 95
3.1.3 信息熵测度 96
3.2 ID3决策树 98
3.2.1 ID3算法 98
3.2.2 ID3的实现 101
3.2.3 决策树主方法 101
3.2.4 训练决策树 103
3.2.5 持久化决策树 104
3.2.6 决策树分类 105
3.2.7 算法评估 106
3.3 C4.5算法 106
3.3.1 信息增益率 106
3.3.2 C4.5的实现 108
3.3.3 训练决策树 108
3.3.4 分类数据 109
3.4 Scikit-Learn与回归树 110
3.4.1 回归算法原理 110
3.4.2 *小剩余方差法 111
3.4.3 模型树 113
3.4.4 剪枝策略 113
3.4.5 Scikit-Learn实现 115
3.5 结语 117
第4章 推荐系统原理 118
4.1 推荐系统概述 119
4.1.1 从亚马逊网站认识推荐系统 119
4.1.2 推荐系统的架构 122
4.1.3 开源推荐系统 125
4.2 协同过滤及其算法 126
4.2.1 协同过滤 126
4.2.2 数据预处理 127
4.2.3 使用Scikit-Learn的KMeans聚类 127
4.2.4 User CF原理 129
4.2.5 Item CF原理 131
4.2.6 SVD原理与计算 132
4.3 KMeans算法详解 135
4.3.1 KMeans算法流程 135
4.3.2 辅助函数 136
4.3.3 聚类主函数 137
4.3.4 评估分类结果 139
4.4 聚类的改进:二分KMeans算法 141
4.4.1 二分聚类主函数 141
4.4.2 评估分类结果 142
4.5 SVD算法详解 143
4.5.1 SVD算法回顾 143
4.5.2 常用距离函数 146
4.5.3 SVD数据集 146
4.5.4 SVD算法主函数 147
4.5.5 评估结果 147
4.6 结语 148
第5章 梯度寻优 149
5.1 **化与计算复杂性 149
5.1.1 **化理论 149
5.1.2 **化的数学描述 150
5.1.3 凸集与分离定理 151
5.1.4 凸函数及其性质 153
5.1.5 局部**与全局** 155
5.1.6 计算复杂性与NP问题 156
5.1.7 逐次逼近法 159
5.2 Logistic梯度下降法 163
5.2.1 梯度下降法 164
5.2.2 线性分类器 166
5.2.3 Logistic函数——世界不是非黑即白 169
5.2.4 算法流程 171
5.2.5 对测试集进行分类 175
5.3 算法分析 175
5.3.1 超平面的变化趋势 176
5.3.2 超平面的收敛评估 177
5.3.3 权重向量的收敛评估 179
5.3.4 算法总体评价 180
5.4 随机梯度下降法:算法改进与评估 180
5.4.1 主函数 181
5.4.2 程序输出 182
5.4.3 步长变化率 183
5.4.4 权重收敛评估 184
5.4.5 权重分量的变化趋势 185
5.4.6 算法总体评价 187
5.5 结语 187
第6章 神经网络初步 189
6.1 神经网络简史 189
6.1.1 起源与早期发展 189
6.1.2 中期发展 190
6.1.3 当前的发展与反思 192
6.2 BP神经网络理论 192
6.2.1 线性不可分问题 192
6.2.2 BP网络构成 193
6.2.3 BP网络的训练过程 196
6.3 BP网络的实现和评估 199
6.3.1 BP网络类与主要方法 199
6.3.2 设计BP网络 199
6.3.3 辅助函数 202
6.3.4 主函数 203
6.3.5 分类器 204
6.3.6 执行分类并输出结果 205
6.3.7 BP网络评估 207
6.4 自组织特征映射神经网络 208
6.4.1 SOM网络框架 208
6.4.2 SOM类 211
6.4.3 功能函数 212
6.4.4 SOM网络的实现 212
6.4.5 聚类结果 213
6.5 Boltzmann机算法 215
6.5.1 问题的提出 215
6.5.2 模拟退火原理 216
6.5.3 Boltzmann分布与退火过程 217
6.5.4 Boltzmann机类与功能函数 219
6.5.5 *短路径的实现 222
6.5.6 执行算法 223
6.5.7 评估结果 224
6.6 结语 225
第7章 预测的技术与哲学 226
7.1 线性系统的预测 226
7.1.1 回归与现代预测学 226
7.1.2 *小二乘法 227
7.1.3 代码实现 229
7.1.4 正规方程组法 231
7.1.5 正规方程组的代码实现 232
7.1.6 算法评估 232
7.2 径向基网络 233
7.2.1 RBF网络 233
7.2.2 辅助函数 236
7.2.3 使用RBF预测 236
7.2.4 评估预测结果 238
7.3 岭回归 238
7.3.1 验证多重共线性 239
7.3.2 岭回归理论 240
7.3.3 岭际分析 240
7.3.4 k值的判定 242
7.3.5 辅助函数 243
7.3.6 岭回归的实现与k值计算 243
7.3.7 算法评估 244
7.4 预测的哲学 245
7.4.1 从《周易》谈起 246
7.4.2 两仪生四象 249
7.4.3 周期三与混沌 251
7.4.4 Logistic中的吸引子 254
7.4.5 三生万物 258
7.4.6 八卦图及其推演 261
7.5 结语 263
第8章 **分类器——支持向量机 265
8.1 支持向量机的理论基础 266
8.1.1 经验风险** 266
8.1.2 关键定理与VC维 267
8.1.3 结构风险** 270
8.2 SVM的数学推导 272
8.2.1 **间隔超平面 272
8.2.2 拉格朗日乘子法 275
8.2.3 KKT条件与对偶变换 276
8.2.4 分类器函数 277
8.2.5 映射到高维空间 278
8.2.6 核函数法 280
8.2.7 离群点的松弛变量 281
8.3 SMO算法 284
8.3.1 SMO求解SVM 284
8.3.2 构造SMO类 288
8.3.3 主函数 290
8.3.4 训练数据 291
8.3.5 分类并评估算法 293
8.4 SVM中文文本分类 293
8.4.1 回顾中文文本分类 294
8.4.2 Scikit-Learn SVM分类 294
8.4.3 评估结果 295
8.5 结语 296
第9章 人脸识别中的机器学习 297
9.1 模式识别概述 297
9.1.1 认知与模式 29
1.1 编程语言与开发环境 2
1.1.1 搭建Python开发环境 2
1.1.2 安装Python算法库 4
1.1.3 IDE配置及其安装测试 5
1.2 对象、矩阵与矢量化编程 8
1.2.1 对象与维度 8
1.2.2 初识矩阵 10
1.2.3 矢量化编程与GPU运算 13
1.2.4 理解数学公式与NumPy矩阵运算 14
1.2.5 Linalg线性代数库 18
1.3 机器学习的数学基础 20
1.3.1 相似性的度量 21
1.3.2 各类距离的意义与Python实现 22
1.3.3 理解随机性 29
1.3.4 回顾概率论 30
1.3.5 多元统计基础 32
1.3.6 特征间的相关性 33
1.3.7 再谈矩阵——空间的变换 35
1.3.8 数据归一化 40
1.4 数据处理与可视化 42
1.4.1 数据的导入和内存管理 42
1.4.2 表与线性结构的可视化 45
1.4.3 树与分类结构的可视化 46
1.4.4 图与网络结构的可视化 47
1.5 Linux操作系统下部署Python机器学习开发环境 48
1.5.1 Linux发行版的选择 48
1.5.2 CentOS部署多版本Python实例 49
1.5.3 安装NumPy、SciPy、Matplotlib开发包 52
1.5.4 安装Scikit-Learn开发包 54
1.6 结语 55
第2章 中文文本分类 56
2.1 文本挖掘与文本分类的概念 56
2.2 文本分类项目 58
2.2.1 文本预处理 58
2.2.2 中文分词介绍 61
2.2.3 Scikit-Learn库简介 66
2.2.4 向量空间模型 70
2.2.5 权重策略:TF-IDF方法 71
2.2.6 使用朴素贝叶斯分类模块 74
2.2.7 分类结果评估 76
2.3 分类算法:朴素贝叶斯 78
2.3.1 贝叶斯公式推导 78
2.3.2 朴素贝叶斯算法实现 79
2.3.3 算法的改进 82
2.3.4 评估分类结果 82
2.4 分类算法:kNN 83
2.4.1 kNN算法原理 83
2.4.2 kNN算法的Python实现 86
2.4.3 评估分类结果 88
2.5 结语 88
第3章 决策树的发展 89
3.1 决策树的基本思想 89
3.1.1 从一个实例开始 90
3.1.2 决策树的算法框架 95
3.1.3 信息熵测度 96
3.2 ID3决策树 98
3.2.1 ID3算法 98
3.2.2 ID3的实现 101
3.2.3 决策树主方法 101
3.2.4 训练决策树 103
3.2.5 持久化决策树 104
3.2.6 决策树分类 105
3.2.7 算法评估 106
3.3 C4.5算法 106
3.3.1 信息增益率 106
3.3.2 C4.5的实现 108
3.3.3 训练决策树 108
3.3.4 分类数据 109
3.4 Scikit-Learn与回归树 110
3.4.1 回归算法原理 110
3.4.2 *小剩余方差法 111
3.4.3 模型树 113
3.4.4 剪枝策略 113
3.4.5 Scikit-Learn实现 115
3.5 结语 117
第4章 推荐系统原理 118
4.1 推荐系统概述 119
4.1.1 从亚马逊网站认识推荐系统 119
4.1.2 推荐系统的架构 122
4.1.3 开源推荐系统 125
4.2 协同过滤及其算法 126
4.2.1 协同过滤 126
4.2.2 数据预处理 127
4.2.3 使用Scikit-Learn的KMeans聚类 127
4.2.4 User CF原理 129
4.2.5 Item CF原理 131
4.2.6 SVD原理与计算 132
4.3 KMeans算法详解 135
4.3.1 KMeans算法流程 135
4.3.2 辅助函数 136
4.3.3 聚类主函数 137
4.3.4 评估分类结果 139
4.4 聚类的改进:二分KMeans算法 141
4.4.1 二分聚类主函数 141
4.4.2 评估分类结果 142
4.5 SVD算法详解 143
4.5.1 SVD算法回顾 143
4.5.2 常用距离函数 146
4.5.3 SVD数据集 146
4.5.4 SVD算法主函数 147
4.5.5 评估结果 147
4.6 结语 148
第5章 梯度寻优 149
5.1 **化与计算复杂性 149
5.1.1 **化理论 149
5.1.2 **化的数学描述 150
5.1.3 凸集与分离定理 151
5.1.4 凸函数及其性质 153
5.1.5 局部**与全局** 155
5.1.6 计算复杂性与NP问题 156
5.1.7 逐次逼近法 159
5.2 Logistic梯度下降法 163
5.2.1 梯度下降法 164
5.2.2 线性分类器 166
5.2.3 Logistic函数——世界不是非黑即白 169
5.2.4 算法流程 171
5.2.5 对测试集进行分类 175
5.3 算法分析 175
5.3.1 超平面的变化趋势 176
5.3.2 超平面的收敛评估 177
5.3.3 权重向量的收敛评估 179
5.3.4 算法总体评价 180
5.4 随机梯度下降法:算法改进与评估 180
5.4.1 主函数 181
5.4.2 程序输出 182
5.4.3 步长变化率 183
5.4.4 权重收敛评估 184
5.4.5 权重分量的变化趋势 185
5.4.6 算法总体评价 187
5.5 结语 187
第6章 神经网络初步 189
6.1 神经网络简史 189
6.1.1 起源与早期发展 189
6.1.2 中期发展 190
6.1.3 当前的发展与反思 192
6.2 BP神经网络理论 192
6.2.1 线性不可分问题 192
6.2.2 BP网络构成 193
6.2.3 BP网络的训练过程 196
6.3 BP网络的实现和评估 199
6.3.1 BP网络类与主要方法 199
6.3.2 设计BP网络 199
6.3.3 辅助函数 202
6.3.4 主函数 203
6.3.5 分类器 204
6.3.6 执行分类并输出结果 205
6.3.7 BP网络评估 207
6.4 自组织特征映射神经网络 208
6.4.1 SOM网络框架 208
6.4.2 SOM类 211
6.4.3 功能函数 212
6.4.4 SOM网络的实现 212
6.4.5 聚类结果 213
6.5 Boltzmann机算法 215
6.5.1 问题的提出 215
6.5.2 模拟退火原理 216
6.5.3 Boltzmann分布与退火过程 217
6.5.4 Boltzmann机类与功能函数 219
6.5.5 *短路径的实现 222
6.5.6 执行算法 223
6.5.7 评估结果 224
6.6 结语 225
第7章 预测的技术与哲学 226
7.1 线性系统的预测 226
7.1.1 回归与现代预测学 226
7.1.2 *小二乘法 227
7.1.3 代码实现 229
7.1.4 正规方程组法 231
7.1.5 正规方程组的代码实现 232
7.1.6 算法评估 232
7.2 径向基网络 233
7.2.1 RBF网络 233
7.2.2 辅助函数 236
7.2.3 使用RBF预测 236
7.2.4 评估预测结果 238
7.3 岭回归 238
7.3.1 验证多重共线性 239
7.3.2 岭回归理论 240
7.3.3 岭际分析 240
7.3.4 k值的判定 242
7.3.5 辅助函数 243
7.3.6 岭回归的实现与k值计算 243
7.3.7 算法评估 244
7.4 预测的哲学 245
7.4.1 从《周易》谈起 246
7.4.2 两仪生四象 249
7.4.3 周期三与混沌 251
7.4.4 Logistic中的吸引子 254
7.4.5 三生万物 258
7.4.6 八卦图及其推演 261
7.5 结语 263
第8章 **分类器——支持向量机 265
8.1 支持向量机的理论基础 266
8.1.1 经验风险** 266
8.1.2 关键定理与VC维 267
8.1.3 结构风险** 270
8.2 SVM的数学推导 272
8.2.1 **间隔超平面 272
8.2.2 拉格朗日乘子法 275
8.2.3 KKT条件与对偶变换 276
8.2.4 分类器函数 277
8.2.5 映射到高维空间 278
8.2.6 核函数法 280
8.2.7 离群点的松弛变量 281
8.3 SMO算法 284
8.3.1 SMO求解SVM 284
8.3.2 构造SMO类 288
8.3.3 主函数 290
8.3.4 训练数据 291
8.3.5 分类并评估算法 293
8.4 SVM中文文本分类 293
8.4.1 回顾中文文本分类 294
8.4.2 Scikit-Learn SVM分类 294
8.4.3 评估结果 295
8.5 结语 296
第9章 人脸识别中的机器学习 297
9.1 模式识别概述 297
9.1.1 认知与模式 29
猜您喜欢