OpenCV是1个综合性了經典和优秀计算机视觉、机器学习算法的开源系统库。根据与Python Anaconda版本号融合,我也能够 获得你所必须的全部开源系统测算库。
这书最先详细介绍归类和重归等统计分析学习培训的基本要素,随后详尽解读决策树、支持向量机和贝叶斯网络等优化算法,及其怎样把他们与别的OpenCV涵数融合,*后还会详细介绍当下受欢迎主题风格——深度神经网络。根据这书的学习培训,你将把握很多好用设备复习方法,并根据书中出示的编码或从零开始开发设计自身的优化算法,处理具体难题。
根据阅读文章这书,你将:
·学习培训并高效率应用OpenCV的机器学习控制模块
·应用Python学习培训用以计算机视觉行业的深度神经网络技术性
·把握线性回归和归一化方法
·对盆栽花卉种类、写作大数字和非机动车等物块开展归类
·学习培训支持向量机、提高决策树和随机森林的高效率使用说明
·学习培训应用神经元网络和深度神经网络处理实际难题
·应用k平均值聚类分析法发觉统计数据的掩藏构造
·把握数据预处理和特征工程
这书是1本应用场景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.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-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