统计学习是机器学习的重要分支,本书兼顾了数学上的理解和代码实践,内容主要包括基础知识和统计学习模型。第1章、第2章结合VC维介绍过拟合的本质,并介绍手动特征选择的办法;第3章、第4章从最简单的线性模型出发经过概率统计的解读而得到分类和回归算法;第5章讨论了不依赖于假设分布的非参数模型;第6章将核方法作为一种非线性拓展的技巧介绍如何将该方法应用到很多算法中,并且引出了著名的高斯过程;第7章以混合高斯作为软分配聚类的代表性方法,从而引出著名的EM算法;第8章讨论了机器学习的集成算法;第9章介绍的线性和非线性降维方法将会解决维度灾难问题,并且不同于单纯的特征选择;第10章讨论了不依赖于独立同分布假设的时间序列算法。
本书适合对于统计学习感兴趣的大学生、工程师阅读参考。阅读本书需要具备基础的Python编程技术和基本的数学知识。
前言
人工智能技术广泛出现在各个应用场景中,包括人脸识别、语音识别、机器对话、推荐系统等方面,其背后离不开数据的增加和算力的增强。统计学习和深度学习作为人工智能技术的两大核心也日益受到人们的关注,虽然目前现阶段的人工智能和真正的“智能”无法相提并论,但理解和掌握统计学习和深度学习知识会让我们更加接近“通用智能”的理想。
关于人工智能的书籍浩如烟海,大部分人已经对于大部头的书籍望而生畏,但又希望获得体系化的知识,而本书有两个重要的特点:
1. 更强调对理论的深入理解。针对性地选择了20个主题,希望可以解决很多人面临的困境——不满足于知识堆砌,想达到体系化的理解。例如,对于大多数书直接引入的sigmoid和softmax函数,本书会介绍其背后隐藏的广义线性模型; 大多数书直接引入的正则化作为过拟合的常用手段,本书会介绍其与极大后验估计的关系……
2. 用代码实践结合理论讲解。采用了算法理论和代码实践相结合的方式,代码实践提供了算法实现的某一种或者某几种方式,其目的主要是用来更好地理解算法。在这里,算法和代码的关系,更像是理论与实践的关系,我们用实践来帮助大家更好地理解理论。
本书包含机器学习的基础知识和统计学习模型,分为10章。第1章将过拟合问题结合VC维作为机器学习的基础概念进行讲解,并提供参数模型中防止过拟合的一般方法; 第2章提供机器学习的手动特征选择的办法; 第3章、第4章从最简单的线性模型出发经过概率统计的解读来得到分类和回归算法; 第5章讨论不依赖于假设分布的非参数模型; 第6章将核方法作为一种非线性拓展的技巧,介绍如何将该方法应用到很多算法中,并且引出了著名的高斯过程; 第7章以混合高斯作为软分配聚类的代表性方法,来引出著名的EM算法; 第8章讨论了机器学习的集成算法; 第9章介绍的线性和非线性降维方法将会解决维度灾难问题,并且不同于单纯的特征选择; 第10章讨论不依赖于独立同分布假设的时间序列算法。
人工智能的发展太过迅速,本书只是广阔无边大海里的一艘小船。学问广袤无际,做学问更要勤勉躬亲,作者深知诠才末学,书中难免错漏谬言,希望读者指正和交流,感激不尽。
编者
2021年5月
第1章 防止过拟合
1.1 过拟合和欠拟合的背后
1.2 性能度量和损失函数
1.3 假设空间和VC维
1.4 偏差方差分解的意义
1.5 正则化和参数绑定
1.6 使用scikit-learn
第2章 特征选择
2.1 包裹法Warpper
2.2 过滤法Filter
2.3 嵌入法Embedded
2.4 使用scikit-learn
第3章 回归算法中的贝叶斯
3.1 快速理解判别式模型和生成式模型
3.2 极大似然估计和平方损失
3.3 最大后验估计和正则化
3.4 贝叶斯线性估计
3.5 使用scikit-learn
第4章 分类算法中的贝叶斯
4.1 广义线性模型下的sigmoid函数和softmax函数
4.2 对数损失和交叉熵
4.3 逻辑回归的多项式拓展和正则化
4.4 朴素贝叶斯分类器
4.5 拉普拉斯平滑和连续特征取值的处理方法
4.6 使用scikit-learn
第5章 非参数模型
5.1 K近邻与距离度量
5.2 K近邻与kd树
5.3 决策树和条件嫡
5.4 决策树的剪枝
5.5 连续特征取值的处理方法和基尼指数
5.6 回归树
5.7 使用scikit-learn
第6章 核方法
6.1 核方法的本质
6.2 对偶表示和拉格朗日乘子法
6.3 常见算法的核化拓展
6.4 高斯过程
6.5 使用scikit-learn
第7章 混合高斯:比高斯分布更强大
7.1 聚类的重要问题
7.2 潜变量与K均值
7.3 混合高斯和极大似然估计的失效
7.4 EM算法的核心步骤
7.5 使用scikit-learn
第8章 模型组合策略
8.1 Bagging和随机森林
8.2 Boosting的基本框架
8.3 Adaboost
8.4 GBDT和XGBoost
8.5 使用scikit-learn
第9章 核化降维和学习流形
9.1 线性降维
9.2 核化线性降维
9.3 流形学习
9.4 使用scikit-learn
第10章 处理时间序列
10.1 概率图模型和隐变量
10.2 高阶马尔可夫模型
10.3 隐马尔可夫模型
10.4 隐马尔可夫模型的EM算法
10.5 使用scikit-learn
参考文献