当前位置:主页 > 书籍配套资源 > 机器学习配套资源
《机器学习:使用OpenCV和Python进行智能图像处理》代码

《机器学习:使用OpenCV和Python进行智能图像处理》代码

  • 更新:2022-02-07
  • 大小:1.58 MB
  • 类别:机器学习
  • 作者:迈克尔·贝耶勒
  • 出版:机械工业出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

本书是一本基于OpenCV和Python的机器学习实战手册,既详细介绍机器学习及OpenCV相关的基础知识,又通过具体实例展示如何使用OpenCV和Python实现各种机器学习算法,并提供大量示列代码,可以帮助你掌握机器学习实用技巧,解决各种不同的机器学习和图像处理问题。

全书共12章,第1章简要介绍机器学习基础知识,并讲解如何安装OpenCV和Python工具;第2章展示经典的机器学习处理流程及OpenCV和Python工具的使用;第3章讨论监督学习算法,以及如何使用OpenCV实现这些算法;第4章讨论数据表示和特征工程,并介绍OpenCV中提供的用于处理图像数据的常见特征提取技术;第5章展示如何使用OpenCV构建决策树进行医疗诊断;第6章讨论如何使用OpenCV构建支持向量机检测行人;第7章介绍概率论,并展示如何使用贝叶斯学习实现垃圾邮件过滤;第8章讨论一些非监督学习算法;第9章详细讲解如何构建深度神经网络来识别手写数字;第10章讨论如何高效地集成多个算法来提升性能;第11章讨论如何比较不同分类器的结果,选择合适的工具;第12章给出一些处理实际机器学习问题的提示和技巧。

封面图

目录

  • 译者序
  • 前言
  • 审校者简介
  • 第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在OpenCV 中实现主成分分析 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.2MNIST数据集预处理 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-learn实现一个随机森林 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-learn进行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++编写自己的基于OpenCV的分类器 245
  • 12.2.2使用Python 编写自己的基于scikit-learn的分类器 247
  • 12.3今后的方向 249
  • 12.4总结 251

资源下载

资源下载地址1:https://pan.baidu.com/s/1ChG2cUY7maehA9ynorY3pA

相关资源

网友留言