第1章 机器学习的思维 1
1.1 人机界面 1
1.2 设计原理 4
1.2.1 问题的类型 6
1.2.2 问题是否正确 7
1.2.3 任务 8
1.2.4 统一建模语言 27
1.3 总结 31
第2章 工具和技术 32
2.1 Python与机器学习 33
2.2 IPython控制台 33
2.3 安装SciPy栈 34
2.4 NumPy 35
2.4.1 构造和变换数组 38
2.4.2 数学运算 39
2.5 Matplotlib 41
2.6 Pandas 45
2.7 SciPy 47
2.8 Scikit-learn 50
2.9 总结 57
第3章 将数据变为信息 58
3.1 什么是数据 58
3.2 大数据 59
3.2.1 大数据的挑战 60
3.2.2 数据模型 62
3.2.3 数据分布 63
3.2.4 来自数据库的数据 67
3.2.5 来自互联网的数据 68
3.2.6 来自自然语言的数据 70
3.2.7 来自图像的数据 72
3.2.8 来自应用编程接口的数据 72
3.3 信号 74
3.4 数据清洗 76
3.5 数据可视化 78
3.6 总结 80
第4章 模型——从信息中学习 81
4.1 逻辑模型 81
4.1.1 一般性排序 83
4.1.2 解释空间 84
4.1.3 覆盖空间 86
4.1.4 PAC学习和计算复杂性 87
4.2 树状模型 88
4.3 规则模型 92
4.3.1 有序列表方法 94
4.3.2 基于集合的规则模型 95
4.4 总结 98
第5章 线性模型 100
5.1 最小二乘法 101
5.1.1 梯度下降 102
5.1.2 正规方程法 107
5.2 logistic回归 109
5.3 多分类 113
5.4 正则化 115
5.5 总结 117
第6章 神经网络 119
6.1 神经网络入门 119
6.2 logistic单元 121
6.3 代价函数 126
6.4 神经网络的实现 128
6.5 梯度检验 133
6.6 其他神经网络架构 134
6.7 总结 135
第7章 特征——算法眼中的世界 136
7.1 特征的类型 137
7.1.1 定量特征 137
7.1.2 有序特征 138
7.1.3 分类特征 138
7.2 运算和统计 139
7.3 结构化特征 141
7.4 特征变换 141
7.4.1 离散化 143
7.4.2 归一化 144
7.4.3 校准 145
7.5 主成分分析 149
7.6 总结 151
第8章 集成学习 152
8.1 集成学习的类型 152
8.2 Bagging方法 153
8.2.1 随机森林 154
8.2.2 极端随机树 155
8.3 Boosting方法 159
8.3.1 AdaBoost 161
8.3.2 梯度Boosting 163
8.4 集成学习的策略 165
8.5 总结 168
第9章 设计策略和案例研究 169
9.1 评价模型的表现 169
9.2 模型的选择 174
9.3 学习曲线 176
9.4 现实世界中的案例研究 178
9.4.1 建立一个推荐系统 178
9.4.2 温室虫害探测 185
9.5 机器学习一瞥 188
9.6 总结 190