具体描述
本书是机器学习原理和算法编码实现的基础性读物,内容分为两大主线:单个算法的原理讲解和机器学习理论的发展变迁。算法除包含传统的分类、聚类、预测等常用算法之外,还新增了深度学习、贝叶斯网、隐马尔科夫模型等内容。对于每个算法,均包括提出问题、解决策略、数学推导、编码实现、结果评估几部分。数学推导力图做到由浅入深,深入浅出。结构上数学原理与程序代码一一对照,有助于降低学习门槛,加深公式的理解,起到推广和扩大机器学习的作用。
作者简介
目录信息
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 认知与模式 297
9.1.2 机器视觉与OpenCV 300
9.1.3 OpenCV的文件与基本操作 301
9.2 人脸检测 305
9.2.1 人脸识别的历史与架构 305
9.2.2 人脸识别系统 307
9.2.3 人脸检测原理与Haar级联检测 308
9.2.4 人脸检测特征文件 311
9.2.5 Haar cascade的实现 314
9.2.6 LBP cascade的实现 315
9.3 AdaBoost算法概述 316
9.3.1 算法原理与步骤 316
9.3.2 辅助函数 317
9.3.3 AdaBoost分类器 318
9.3.4 单层决策树分类子算法 319
9.3.5 训练数据集 321
9.3.6 执行分类 322
9.4 人脸识别 323
9.4.1 人脸数据库 324
9.4.2 PCA原理 325
9.4.3 特征脸识别类 327
9.4.4 生成特征脸 328
9.4.5 执行人脸识别 330
9.5 结语 330
第10章 认知计算与深度学习 332
10.1 认知计算 332
10.1.1 认知层次论 333
10.1.2 从具体到抽象 336
10.1.3 Theano库与基本操作 338
10.2 多层感知器 343
10.2.1 MNIST数据集 343
10.2.2 Softmax回归类 345
10.2.3 正则化方法 347
10.2.4 执行SoftMax学习 350
10.2.5 多层感知器 353
10.2.6 多层感知器的实现 355
10.2.7 MLP的训练过程 358
10.3 卷积神经网络 358
10.3.1 理论基础 358
10.3.2 卷积类 363
10.3.3 LeNet5函数 364
10.3.4 CNN的训练过程 369
10.4 Theano安装与GPU运算 370
10.4.1 Anaconda安装 370
10.4.2 实现CPU运算 372
10.4.3 安装VS2013 374
10.4.4 安装CUDA 375
10.4.5 实现支持GPU运算 378
10.5 结语 378
第11章 概率图模型与词性标注 380
11.1 马尔科夫过程 381
11.1.1 随机过程与状态图 381
11.1.2 马尔科夫链及其概念 382
11.1.3 马尔科夫链的实现 384
11.2 概率图模型和贝叶斯网 385
11.2.1 概述 385
11.2.2 条件独立性 386
11.2.3 贝叶斯网简介 390
11.2.4 贝叶斯网的构造 392
11.2.5 贝叶斯网的推理简介 394
11.3 隐马尔科夫模型 396
11.3.1 概述 396
11.3.2 HMM推理与前向算法 399
11.3.3 Vertibi算法原理 403
11.3.4 Vertibi算法实现 405
11.3.5 执行并输出结果 406
11.4 词性标注系统 406
11.4.1 语料库与词性资源 407
11.4.2 手工计算 409
11.4.3 结果验证 413
11.5 结语 414
· · · · · · (收起)
读后感
超级受不了!书中的插图都是黑白的!插图中样本有红色,蓝色;还有算法解释图...这些都是有各种颜色区分的。书中插图是黑白,然后告诉读者:红色是...蓝色是.....这不什么都看不了吗? PDF版就没有这个问题!
超级受不了!书中的插图都是黑白的!插图中样本有红色,蓝色;还有算法解释图...这些都是有各种颜色区分的。书中插图是黑白,然后告诉读者:红色是...蓝色是.....这不什么都看不了吗? PDF版就没有这个问题!
超级受不了!书中的插图都是黑白的!插图中样本有红色,蓝色;还有算法解释图...这些都是有各种颜色区分的。书中插图是黑白,然后告诉读者:红色是...蓝色是.....这不什么都看不了吗? PDF版就没有这个问题!
超级受不了!书中的插图都是黑白的!插图中样本有红色,蓝色;还有算法解释图...这些都是有各种颜色区分的。书中插图是黑白,然后告诉读者:红色是...蓝色是.....这不什么都看不了吗? PDF版就没有这个问题!
超级受不了!书中的插图都是黑白的!插图中样本有红色,蓝色;还有算法解释图...这些都是有各种颜色区分的。书中插图是黑白,然后告诉读者:红色是...蓝色是.....这不什么都看不了吗? PDF版就没有这个问题!
用户评价
这本书的封面设计非常引人注目,那种深邃的蓝色调搭配着银白色的文字,一下子就抓住了我的眼球。我一直对算法理论有着浓厚的兴趣,但总觉得那些纯粹的数学推导有些枯燥乏味,难以将其与实际应用联系起来。然而,这本书的排版和结构设计得非常巧妙,它在深入讲解核心算法原理的同时,并没有过度沉溺于复杂的公式,而是通过大量生动的例子和直观的图示,将那些原本抽象的概念变得清晰易懂。特别是它在介绍诸如支持向量机(SVM)和决策树(Decision Tree)这些经典算法时,作者的讲解思路非常清晰,仿佛有一位经验丰富的导师在手把手地带领你一步步拆解问题的核心。读完前几章,我就能感受到作者在教学方法上的用心良苦,绝不是那种简单堆砌知识点的教科书式写作,而是真正站在读者的角度,预判我们在学习过程中可能遇到的困惑,并提前给出巧妙的解答。这种对读者学习体验的关注,让我对后续内容的阅读充满了期待。
与其他市场上同类书籍相比,这本书的视野显得更加开阔和前瞻。它不仅详细讲解了那些已经被广泛应用的基础算法,还对当前机器学习领域的热点趋势和一些新兴的模型结构进行了深入浅出的介绍。我特别欣赏作者在章节末尾设置的“进阶思考”部分,它没有给出标准答案,而是提出了一系列具有挑战性的开放性问题,引导读者去思考算法的局限性以及未来可能的发展方向。这种鼓励批判性思维的引导,远比直接灌输知识更有效。它让我意识到,机器学习不是一个静止的知识体系,而是一个快速演进的领域,这本书成功地为我打下了一个坚实的基础,同时也为我指明了未来自我深造和探索的方向,感觉像是在阅读一本兼具历史沉淀感和未来展望性的导览图。
说实话,我之前接触过一些号称“实践”导向的机器学习书籍,但很多最终都沦为了API调用的说明手册,真正深入到算法内部逻辑的探讨却付之阙如。这本书彻底颠覆了我的这种看法。它没有回避那些令人望而生畏的数学基础,但处理方式非常高明。它不像纯数学著作那样要求读者具备深厚的微积分背景,而是选取了最关键、最能帮助理解算法本质的数学工具进行阐释,并且用非常生活化的语言进行类比。比如,在解释梯度下降法时,作者描绘的场景,让我立刻联想到了下山找最低点的过程,瞬间就理解了迭代优化的核心思想。这种兼顾深度和广度的叙述方式,使得即使是对数学有畏惧心理的读者,也能建立起对算法底层机制的直观认识,而不是仅仅停留在调用库函数的层面,这才是真正的“原理”讲解的精髓所在。
这本书的质量管理和校对工作做得非常出色,这是我阅读体验中一个常常被忽视但至关重要的方面。我发现书中的公式符号一致性极高,图表的清晰度和准确性也无可挑剔。在阅读技术书籍时,一个微小的排版错误或者一个错误的下标,都可能导致读者对整个逻辑链条产生误解,从而浪费大量时间去调试和自我怀疑。我特地对比了书中几个复杂模型(比如某种集成学习方法)的推导过程,所有符号的定义和使用都保持了高度的严谨性,这反映出编者团队在细节把控上的专业素养。这种对细节的尊重,让阅读过程无比顺畅,我能把全部的注意力都集中在理解算法本身的逻辑上,而不是分神去辨别印刷错误或者符号混淆,这对于提升学习效率是巨大的助力。
我作为一个初入这个领域的学习者,最头疼的就是如何将理论知识转化为实际的代码能力。这本书在这方面做得实在太棒了,它不仅仅是停留在纸面上的理论阐述,而是非常扎实地结合了编程实践的环节。我惊喜地发现,每一个关键算法后面,都紧跟着对应的代码实现和详尽的注释,这对于我们这些需要通过动手实践来加深理解的人来说,简直是福音。我尝试着按照书中的步骤,在自己的环境中复现了几个核心模型的训练过程,每一个参数调整和结果分析都写得清晰明白,让我能够很快地从“知其然”过渡到“知其所以然”。这种理论与实践的无缝衔接,极大地增强了我的自信心。它不像某些书籍那样,理论和代码像是两个独立的个体,而是完美地融合在一起,互相支撑,让学习过程不再是零散的知识点拼凑,而是一个完整的、可操作的知识体系构建过程。
我感觉这本书一点都不好
实在是看不下去了,到处是编辑错误。看的我想吐。比如要打(1+2)很可能编辑上是1(+2)。该使用黑体的向量不用黑体,不该用黑体的标量用黑体。连个向量点积公式都打错了。实在是不敢接着看了,怕上火。
真心无语,表达能力也太差了
就是抄袭,网页各处截,大部分抄机《器学习实战》,野鸡作者的书不要看不要买...
实在是看不下去了,到处是编辑错误。看的我想吐。比如要打(1+2)很可能编辑上是1(+2)。该使用黑体的向量不用黑体,不该用黑体的标量用黑体。连个向量点积公式都打错了。实在是不敢接着看了,怕上火。