译者序

前言

审校者简介

章 品味机器学习 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

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

0章 组合不同算法为一个整体 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

1章 通过超参数调优选择合适的模型 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

2章 综合 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

使用opencv和python实现图像的智能处理_机器学习:使用opencv和python进行智能图像处理...相关推荐

  1. python程序运行按什么键_太惨!学Python方法用错,直接从入门到放弃!

    原标题:太惨!学Python方法用错,直接从入门到放弃! 从你开始学习编程的那一刻起,就注定了以后所要走的路-从编程学习者开始,依次经历实习生.程序员.软件工程师.架构师.CTO等职位的磨砺:当你站在 ...

  2. python网上有免费资源吗_【转载】学习Python无从下手?最好的免费资源想要拿走...

    Python 可以用来做什么? 在我看来,基本上可以不负责任地认为,Python 可以做任何事情.无论是从入门级选手到专业级选手都在做的爬虫,还是Web 程序开发.桌面程序开发还是科学计算.图像处理, ...

  3. python的gui库哪个好_常用的13 个Python开发者必备的Python GUI库

    [Python](http://www.blog2019.net/tag/Python?tagId=4)是一种高级编程语言,它用于通用编程,由Guido van Rossum 在1991年首次发布.P ...

  4. python源代码最多的学习网站_史上最全Python学习资料大合集分享

    Python有多火就不用说了,之前也零散地分享过一些Python学习开发资料. 本次将分享Python学习资料合集.合集哦,你品,你细品! 在分享之前,还是要啰嗦一下,不然文章字数太少,不太好看. P ...

  5. python要和什么一起学_跟哥一起学Python(1) - python简介

    01-写在前面 我做了十几年的程序猿,码过代码.带过项目.做过产品经理.做过软件架构师.因为我是做通信设备软件的,面向底层操作系统,所以我的工作主要以C语言为主.Python在我的工作中通常用来写一些 ...

  6. python 内存溢出能捕获吗_从0基础学习Python (19)[面向对象开发过程中的异常(捕获异常~相关)]...

    从0基础学习Python (Day19) 面向对象开发过程中的=>异常 什么是异常 ​ 当程序在运行过程中出现的一些错误,或者语法逻辑出现问题,解释器此时无法继续正常执行了,反而出现了一些错误的 ...

  7. python里面两个大于号_【课堂笔记】Python常用的数值类型有哪些?

    学习了视频课程<财务Python基础>,小编特为大家归纳了Python常用的数值类型和运算符,大家一起来查缺补漏吧~~ 数值类型 整型(int):整型对应我们现实世界的整数,比如1,2,1 ...

  8. python代码用c语言封装_使用C语言扩展Python程序的简单入门指引

    一.简介 Python是一门功能强大的高级脚本语言,它的强大不仅表现在其自身的功能上,而且还表现在其良好的可扩展性上,正因如此,Python已经开始受到越来越多人的青睐,并且被屡屡成功地应用于各类大型 ...

  9. python输入什么就输出什么_一文读懂Python的输入和输出

    本文介绍了Python的输入和输出,既然是Python代码,那么就一定有输出量,那么,Python是如何输出的呢? 输出 用print()在括号中加上字符串,就可以向屏幕上输出指定的文字.比如输出'h ...

最新文章

  1. Javascript的原型链、instanceof与typeof
  2. 华为服务器怎么查看系统日志,服务器运行日志查看
  3. 什么是URL?协议头、路径和端口是什么意思?
  4. 2019-5-15求职笔试题
  5. MPI程序例子 test_8_1_2.c -- 对等模式的MPI程序,Jacobi迭代 (MPI_Send、MPI_Recv)
  6. mysql5.7.18的安装与主从复制
  7. ScrollView
  8. 每天一个linux命令(40):wc命令
  9. phoenix 开发API系列(一)创建简单的http api
  10. JS疑难点和GC原理
  11. 【电路仿真】基于simulink全数字锁相环设计【含Matlab源码 340期】
  12. DB2 查看表空间使用率
  13. 从零开始学androidchronometer计时器组件.三十二.
  14. 如何找回QQ聊天记录、语音、图片?
  15. 计算机学生会大型户外活动,学生会户外活动策划方案
  16. 计算机领域十大世界难题,世界四大科学难题是什么,什么是四大科学难题
  17. LeetCode面试热题十二
  18. C#入门学习-----图书阅读器(WPF 用户控件技术)
  19. 正在找工作的同学看过来,zozo最新的java面试题总会,学会月薪3万起!!!
  20. 创造与魔法java语言_创造与魔法 | 最新魔法使用大全

热门文章

  1. K8S 部署rabbitmq集群
  2. Android 屏幕适配解决方案汇总
  3. 基于JAVA+Servlet+JSP+MYSQL的毕业生就业管理系统
  4. mysql 编码utfmb4
  5. document.body 与 document.documentElement区别介绍
  6. 关于PHP上传文件时配置 php.ini 中的 upload_tmp_dir
  7. 邓迎春绘画201702作品5
  8. [51NOD1126]求递推序列的第n项(矩阵快速幂)
  9. 条款5:了解C++默默编写并调用哪些函数(Know what functions C++ silently writes and calls)...
  10. linux发送日志命令,linux:记录不同用户使用的命令发送到指定的目录中(可发送到日志服务器中)...