《机器学习 使用OpenCV和Python进行智能图像处理》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:(美)迈克尔·贝耶勒著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2019
  • ISBN:7111611516
  • 页数:252 页
图书介绍:

第1章 品味机器学习 1

1.1初步了解机器学习 1

1.2机器学习可以解决的事情 3

1.3初步了解Python 4

1.4初步了解OpenCV 4

1.5安装 5

1.5.1获取本书最新的代码 5

1.5.2掌握Python Anaconda 6

1.5.3在conda环境中安装OpenCV 8

1.5.4验证安装结果 9

1.5.5一睹OpenCV ML模块 11

1.6总结 11

第2章 使用OpenCV和Python处理数据 12

2.1理解机器学习流程 12

2.2使用OpenCV和Python处理数据 14

2.2.1创建一个新的IPython或Jupyter会话 15

2.2.2使用Python的NumPy包处理数据 16

2.2.3在Python中载入外部数据集 20

2.2.4使用Matplotlib进行数据可视化 21

2.2.5使用C++中OpenCV的TrainData容器处理数据 26

2.3总结 27

第3章 监督学习的第一步 28

3.1理解监督学习 28

3.1.1了解OpenCV中的监督学习 29

3.1.2使用评分函数评估模型性能 30

3.2使用分类模型预测类别 35

3.2.1理解k-NN算法 37

3.2.2使用OpenCV实现k-NN 37

3.3使用回归模型预测连续结果 43

3.3.1理解线性回归 43

3.3.2使用线性回归预测波士顿房价 44

3.3.3应用Lasso回归和ridge回归 48

3.4使用逻辑回归对鸢尾花种类进行分类 48

3.5总结 53

第4章 数据表示与特征工程 54

4.1理解特征工程 54

4.2数据预处理 55

4.2.1特征标准化 56

4.2.2特征归一化 57

4.2.3特征缩放到一定的范围 57

4.2.4特征二值化 58

4.2.5缺失数据处理 58

4.3理解降维 59

4.3.1在OpenC V中实现主成分分析 61

4.3.2实现独立成分分析 64

4.3.3实现非负矩阵分解 65

4.4类别变量表示 66

4.5文本特征表示 68

4.6图像表示 69

4.6.1使用色彩空间 69

4.6.2图像角点检测 71

4.6.3使用尺度不变特征变换 72

4.6.4使用加速健壮特征 74

4.7总结 75

第5章 使用决策树进行医疗诊断 76

5.1理解决策树 76

5.1.1构建第一个决策树 79

5.1.2可视化训练得到的决策树 85

5.1.3深入了解决策树的内部工作机制 87

5.1.4特征重要性评分 88

5.1.5理解决策规则 89

5.1.6控制决策树的复杂度 90

5.2使用决策树进行乳腺癌的诊断 90

5.2.1载入数据集 91

5.2.2构建决策树 92

5.3使用决策树进行回归 96

5.4总结 99

第6章 使用支持向量机检测行人 100

6.1理解线性支持向量机 100

6.1.1学习最优决策边界 101

6.1.2实现我们的第一个支持向量机 102

6.2处理非线性决策边界 107

6.2.1理解核机制 108

6.2.2认识我们的核 109

6.2.3实现非线性支持向量机 109

6.3 自然环境下的行人检测 110

6.3.1获取数据集 111

6.3.2初窥方向梯度直方图 113

6.3.3生成负样本 114

6.3.4实现支持向量机 116

6.3.5模型自举 116

6.3.6在更大的图像中检测行人 118

6.3.7进一步优化模型 120

6.4总结 121

第7章 使用贝叶斯学习实现垃圾邮件过滤 122

7.1理解贝叶斯推断 122

7.1.1概率论的短暂之旅 123

7.1.2理解贝叶斯定理 124

7.1.3理解朴素贝叶斯分类器 126

7.2实现第一个贝叶斯分类器 127

7.2.1创建一个练习数据集 127

7.2.2使用一个正态贝叶斯分类器对数据分类 128

7.2.3使用一个朴素贝叶斯分类器对数据分类 131

7.2.4条件概率的可视化 132

7.3使用朴素贝叶斯分类器对邮件分类 134

7.3.1载入数据集 134

7.3.2使用Pandas构建数据矩阵 136

7.3.3数据预处理 137

7.3.4训练正态贝叶斯分类器 138

7.3.5使用完整的数据集进行训练 139

7.3.6使用n-gram提升结果 139

7.3.7使用TD-IDF提升结果 140

7.4总结 141

第8章 使用非监督学习发现隐藏结构 142

8.1理解非监督学习 142

8.2理解k均值聚类 143

8.3理解期望最大化 145

8.3.1实现期望最大化解决方案 146

8.3.2了解期望最大化的局限 148

8.4使用k均值压缩色彩空间 154

8.4.1真彩色调色板的可视化 154

8.4.2使用k均值减少调色板 157

8.5使用k均值对手写数字分类 159

8.5.1载入数据集 159

8.5.2运行k均值 159

8.6把聚类组织成层次树 161

8.6.1理解层次聚类 161

8.6.2实现凝聚层次聚类 162

8.7总结 163

第9章 使用深度学习对手写数字分类 164

9.1理解McCulloch-Pitts神经元 164

9.2理解感知器 167

9.3实现第一个感知器 169

9.3.1生成练习数据集 170

9.3.2使用数据拟合感知器 171

9.3.3评估感知器分类器 171

9.3.4把感知器应用到线性不可分的数据上 173

9.4理解多层感知器 174

9.4.1理解梯度下降 175

9.4.2使用反向传播训练多层感知器 178

9.4.3在OpenCV中实现多层感知器 179

9.5了解深度学习 183

9.6手写数字分类 186

9.6.1载入MNIST数据集 187

9.6.2 MNIST数据集预处理 188

9.6.3使用OpenCV 训练一个MLP 189

9.6.4使用Keras训练一个深度神经网络 190

9.7总结 192

第10章 组合不同算法为一个整体 193

10.1理解集成方法 193

10.1.1理解平均集成 195

10.1.2理解提升集成 197

10.1.3理解堆叠集成 200

10.2组合决策树为随机森林 200

10.2.1理解决策树的不足 200

10.2.2实现第一个随机森林 204

10.2.3使用scikit-leam实现一个随机森林 205

10.2.4实现极端随机树 206

10.3使用随机森林进行人脸识别 208

10.3.1载入数据集 208

10.3.2预处理数据集 209

10.3.3训练和测试随机森林 210

10.4实现AdaBoost 212

10.4.1使用OpenCV实现AdaBoost 212

10.4.2使用scikit-learn实现AdaBoost 213

10.5组合不同模型为一个投票分类器 214

10.5.1理解不同的投票机制 214

10.5.2实现一个投票分类器 215

10.6总结 217

第11章 通过超参数调优选择合适的模型 218

11.1评估一个模型 218

11.1.1评估模型错误的方法 219

11.1.2评估模型正确的方法 220

11.1.3选择最好的模型 221

11.2理解交叉验证 223

11.2.1使用OpenCV手动实现交叉验证 225

11.2.2使用scikit-lea进行k折交叉验证 226

11.2.3实现留一法交叉验证 227

11.3使用自举评估鲁棒性 228

11.4评估结果的重要性 230

11.4.1实现T检验 230

11.4.2实现配对卡方检验 232

11.5使用网格搜索进行超参数调优 233

11.5.1实现一个简单的网格搜索 234

11.5.2理解验证集的价值 235

11.5.3网格搜索结合交叉验证 236

11.5.4网格搜索结合嵌套交叉验证 238

11.6使用不同评估指标来对模型评分 239

11.6.1选择正确的分类指标 239

11.6.2选择正确的回归指标 240

11.7链接算法形成一个管道 240

11.7.1用scikit-learn实现管道 241

11.7.2在网格搜索中使用管道 242

11.8总结 243

第12章 综合 244

12.1着手处理一个机器学习问题 244

12.2构建自己的估计器 245

12.2.1使用C++编写自己的基于OpenC V的分类器 245

12.2.2使用Python编写自己的基于scikit-learn的分类器 247

12.3今后的方向 249

12.4总结 251