本书以零基础讲解为特色,用实例引导读者学习,深入浅出地介绍Python机器学习的相关知识和实战技能。
全书共17章,分为5篇。第Ⅰ篇为机器学习入门篇,包含第1章,主要介绍机器学习的概念、机器学习研究的主要任务、如何选择合适的算法及机器学习研究问题的一般步骤等;第Ⅱ篇为工具模块使用篇,包含第2~4章,主要介绍数组计算NumPy、数据分析Pandas、图形展示Matplotlib等;第Ⅲ篇为专业技能提升篇,包含第5~13章,主要介绍算法综述、决策树、朴素贝叶斯、逻辑回归、支持向量机、AdaBoost、线性回归、k-means、PCA等;第Ⅳ篇为深度学习延伸篇,包含第14章,主要介绍卷积神经网络;第Ⅴ篇为项目技能实战篇,包含第15~17章,主要介绍验证码识别、答题卡识别、机器学习简历指导等。同时,本书随书赠送了大量相关的学习资料,以便读者扩展学习。
本书适用于任何想学习Python机器学习的读者。无论读者是否从事Python相关工作,是否接触过Python,均可通过学习本书快速掌握Python机器学习的开发方法和技巧。
● 内容详细 覆盖基础知识、工具模块、常用算法及深度学习延伸知识
● 案例丰富 16个实战案例+2个项目案例,帮助读者快速提高专业技能
● 就业指导 面试题解答+ 自测题+ 简历指导,帮助读者快速入行入职
桑园 副教授、高级工程师,郑州西亚斯学院骨干教师,计算机科学系主任。主要开设课程:Python程序设计、Java?Web框架开发技术、数据库原理、机器学习等。主要研究方向:机器学习算法研究。先后发表论文10余篇,出版教材专著4部,主持省部级教科研项目4项,作为主要完成人参与教学质量工程2项。
第Ⅰ篇 机器学习入门篇
第 1 章 机器学习入门之机器学习基础
1.1 做第 一个吃螃蟹的人-理解机器学习 003
1.2 机器学习研究的主要任务 005
1.2.1 监督学习 005
1.2.2 非监督学习 006
1.3 如何选择合适的算法 007
1.4 机器学习研究问题的一般步骤 007
1.5 小结 008
第Ⅱ篇 工具模块使用篇
第 2 章 机器学习模块之数组计算NumPy
2.1 从“人机大战”谈NumPy模块的妙用 011
2.2 NumPy模块的数组对象 015
2.2.1 创建数组对象 015
2.2.2 数组对象类型的说明 019
2.2.3 随机数生成数组 020
2.3 NumPy模块中数组的广播 022
2.3.1 数组广播的原则 023
2.3.2 数组广播的妙用 025
2.4 NumPy模块中数组的操作 026
2.4.1 基本的索引 027
2.4.2 切片的索引 029
2.4.3 布尔型索引 030
2.4.4 数组的转置和轴变换 032
2.4.5 元素的重复操作:repeat()和tile() 036
2.5 通用方法:快速的元素级数组方法 037
2.6 利用数组进行运算 039
2.6.1 用数学方法进行统计 039
2.6.2 数组中布尔值的统计 042
2.6.3 将条件逻辑表述为数组运算 043
2.6.4 数组的合并和拆分 045
2.6.5 数组的排序 046
2.6.6 数组的集合运算 047
2.7 数组文件的输入和输出 048
2.7.1 将数组以二进制的形式读取文件 048
2.7.2 存取文本文件 050
2.8 小结 050
第 3 章 机器学习模块之数据分析Pandas
3.1 Pandas数据结构的介绍 052
3.1.1 Series数据结构 052
3.1.2 Series数据类型的运算 054
3.1.3 DataFrame数据结构 055
3.1.4 DataFrame数据的修改 059
3.1.5 DataFrame中的索引对象 062
3.1.6 层次化索引 063
3.2 Pandas数据结构中的基本数据操作 066
3.2.1 重新索引 066
3.2.2 删除指定轴上的项 070
3.2.3 算术运算和数据对齐 071
3.3 数据处理 073
3.3.1 判断缺失数据 073
3.3.2 删除缺失数据 075
3.3.3 填充缺失数据 077
3.3.4 移除重复数据 079
3.3.5 替换数据 081
3.3.6 排列和随机采样 082
3.4 方法的应用与映射 083
3.4.1 排序和排名 084
3.4.2 带有重复值的轴索引 087
3.4.3 汇总和计算描述统计 088
3.4.4 相关系数和协方差 092
3.5 数据的读取和存储 093
3.5.1 读取文本文件格式的数据 093
3.5.2 将数据写出到文本格式 095
3.6 字符串操作 095
3.7 合并数据集 097
3.7.1 数据库风格的DataFrame合并 097
3.7.2 索引上的合并 100
3.7.3 轴向的连接 101
3.7.4 分组合并统计 103
3.7.5 透视表 105
3.8 小结 106
第 4 章 机器学习模块之图形展示Matplotlib
4.1 Matplotlib绘图入门 108
4.1.1 Figure 和subplot 108
4.1.2 颜色、标记和线型 110
4.1.3 坐标轴标记 114
4.1.4 添加图例 116
4.1.5 注解 117
4.1.6 将图表保存到文件 118
4.2 Matplotlib的绘图方法 119
4.2.1 线型图 119
4.2.2 饼图 120
4.2.3 直方图 121
4.2.4 条形图 122
4.2.5 散点图 123
4.3 小结 124
第Ⅲ篇 专业技能提升篇
第 5 章 机器学习算法之算法综述
5.1 从算法巧断小说悬疑情节 127
5.2 KNN算法概述 128
5.2.1 使用KNN算法分析生活日常事件 128
5.2.2 KNN算法的数据准备:使用Python导入数据 131
5.2.3 如何测试分类器 133
5.3 KNN实战示例:对美颜程度打分 134
5.3.1 准备数据:从图像和美颜等级表格中解析数据 135
5.3.2 分析数据:使用Matplotlib创建散点图 136
5.3.3 测试算法:作为完整程序验证分类器 137
5.4 KNN实战示例:手写字识别系统 139
5.4.1 准备数据:将图像转换为测试向量 140
5.4.2 测试算法:使用KNN算法识别手写数字 141
5.5 KNN算法面试题解答 142
5.6 KNN算法自测题 142
5.7 小结.142
第 6 章 机器学习算法之决策树
6.1 巧断推理案引入决策树的妙用 144
6.2 决策树算法概述 145
6.2.1 决策树的构造 146
6.2.2 决策树的信息熵 147
6.2.3 决策树的信息增益 148
6.2.4 主播带货能力分析阐释熵及信息增益计算 149
6.3 决策树创建实战示例:公司老板发红包 153
6.3.1 公司老板发红包案例说明 153
6.3.2 熵值的计算算法实现 155
6.3.3 划分数据集算法实现 156
6.3.4 递归创建决策树 157
6.4 决策树画法实战示例:公司老板发红包 160
6.4.1 注解的使用 160
6.4.2 构造注解树 162
6.5 决策树测试存储实战示例:公司老板发红包 167
6.5.1 决策树测试算法 168
6.5.2 决策树的存储 168
6.6 决策树预测实战示例:预测海选歌手是否入围 169
6.6.1 海选歌手入围流程 169
6.6.2 准备数据、分析数据 170
6.7 决策树的剪枝 171
6.7.1 剪枝的概念 171
6.7.2 预剪枝 172
6.7.3 后剪枝 173
6.8 决策树面试题解答 173
6.9 决策树自测题 174
6.10 小结 174
第 7 章 机器学习算法之朴素贝叶斯
7.1 解决逃命问题引入朴素贝叶斯 176
7.2 对贝叶斯决策的理解 176
7.2.1 条件概率解释案例:公司团建 177
7.2.2 使用条件概率进行分类 178
7.2.3 基于贝叶斯决策理论对分类方法的认识 179
7.3 使用朴素贝叶斯进行商品的情感分析 181
7.3.1 使用朴素贝叶斯进行商品的情感分析概述 181
7.3.2 读取商品评论并切分成文本 182
7.3.3 构建词向量 186
7.3.4 用词向量计算概率 186
7.3.5 对算法的改进 188
7.3.6 利用概率值进行分类 189
7.3.7 测试算法 190
7.4 实战示例:金庸和古龙小说风格判别 191
7.4.1 收集数据 193
7.4.2 准备数据 194
7.4.3 分析数据 194
7.4.4 测试算法 197
7.5 朴素贝叶斯面试题解答 198
7.6 朴素贝叶斯自测题 200
7.7 小结 200
第 8 章 机器学习算法之逻辑回归
8.1 巧析力道学引入逻辑回归 202
8.2 逻辑回归概述 202
8.2.1 逻辑回归的sigmoid函数 202
8.2.2 基于最优化方法的最佳回归系数确定 204
8.2.3 梯度上升算法 205
8.3 逻辑回归实战示例:鸢尾花分类实现回归 209
8.3.1 鸢尾花分类数据集的准备处理 209
8.3.2 鸢尾花分类逻辑回归sigmoid函数的实现 210
8.3.3 鸢尾花分类逻辑回归梯度上升函数的实现 210
8.3.4 鸢尾花分类逻辑回归画出决策边界 211
8.3.5 鸢尾花分类逻辑回归梯度上升算法的改进 213
8.4 逻辑回归实战示例:商铺扣点方式 215
8.4.1 商铺扣点方式的数据读取和处理 215
8.4.2 商铺扣点方式的逻辑回归分类实现 216
8.4.3 商铺扣点方式的逻辑回归分类算法的测试 216
8.5 逻辑回归算法面试题解答 218
8.6 逻辑回归算法自测题 218
8.7 小结 218
第 9 章 机器学习算法之支持向量机
9.1 巧分落花引入支持向量机 220
9.2 SVM算法概念 220
9.2.1 线性可分 220
9.2.2 超平面 222
9.2.3 SVM 222
9.3 SVM算法实战示例:电视台黄金时段节目满意度 225
9.3.1 电视台黄金时段节目满意度数据的读取 225
9.3.2 选取两个不同Alpha值的辅助函数 226
9.3.3 Alpha值不允许超过边界范围的辅助函数 226
9.3.4 SMO算法原理的实现 227
9.3.5 计算不同的回归系数 230
9.3.6 SVM分界线的绘制 230
9.4 SVM算法面试题解答 231
9.5 SVM算法自测题 232
9.6 小结 232
第 10章 机器学习算法之AdaBoost
10.1 巧析北斗阵法引入AdaBoost 234
10.2 AdaBoost算法概述 234
10.2.1 AdaBoost算法的具体思想 234
10.2.2 AdaBoost的弱分类器是单层决策树 235
10.2.3 AdaBoost的数据权重 237
10.2.4 AdaBoost的投票表决 237
10.2.5 AdaBoost强分类过程 238
10.3 AdaBoost算法实现 245
10.3.1 决策树数据根据阈值进行分类算法的实现 246
10.3.2 单层决策树算法的实现 246
10.3.3 AdaBoost算法的实现 247
10.4 AdaBoost算法实战示例:商品购买预测 249
10.4.1 商品购买预测的数据读取实现 249
10.4.2 商品购买预测的测试函数实现 250
10.4.3 商品购买预测的程序整合 251
10.5 AdaBoost算法面试题解答 252
10.6 AdaBoost算法自测题 252
10.7 小结 252
第 11章 机器学习算法之线性回归
11.1 解决论剑问题引入线性回归 254
11.2 线性回归算法概述 254
11.2.1 线性回归模型 255
11.2.2 线性回归的最小二乘法 256
11.3 线性回归实战示例:钓鱼久坐与鱼重量关系 258
11.3.1 钓鱼久坐与鱼重量关系研究的数据读取 258
11.3.2 钓鱼久坐与鱼重量关系研究的最佳拟合直线 258
11.3.3 钓鱼久坐与鱼重量关系研究的最佳拟合直线的绘制 259
11.4 线性回归中的过拟合和欠拟合 260
11.4.1 线性回归中的过拟合 260
11.4.2 线性回归中的欠拟合 261
11.5 局部加权线性回归 261
11.5.1 局部加权线性回归的解释 261
11.5.2 局部加权线性回归的代码实现 262
11.5.3 局部加权线性回归的测试 263
11.6 线性回归实战示例:结合年龄和BMI拟合减肥花销 263
11.6.1 结合年龄和BMI拟合减肥花销的数据读取 263
11.6.2 结合年龄和BMI拟合减肥花销直线的函数实现 264
11.7 线性回归提高:岭回归和套索回归 265
11.7.1 岭回归 265
11.7.2 套索回归 267
11.8 岭回归实战示例:分析抖音视频点击率和收藏 267
11.8.1 岭回归分析抖音视频点击率和收藏的数据读取 267
11.8.2 岭回归算法逻辑的实现 268
11.8.3 岭回归算法系数的测试 268
11.8.4 不同λ值的岭回归算法的最佳拟合直线 269
11.9 线性回归算法面试题解答 270
11.10 线性回归算法自测题 270
11.11 小结 270
第 12章 机器学习算法之k-means
12.1 “巧施反间计”引入k-means聚类 272
12.2 k-means算法概述 272
12.3 k-means幼儿园亲子活动 277
12.3.1 收集数据 278
12.3.2 准备数据 278
12.3.3 分析数据 278
12.3.4 实现算法 278
12.3.5 画出k-means算法的结果图 280
12.4 图像分割技术实现聚类 282
12.4.1 准备数据 282
12.4.2 距离计算 283
12.4.3 第 一次随机质心的计算 283
12.4.4 k-means算法的改进 284
12.4.5 k-means图像分割的显示 285
12.5 图像分割算法的改进 286
12.5.1 k-means图像分割的显示 286
12.5.2 像素距离的改进 286
12.5.3 第 一次随机质心的计算 286
12.5.4 k-means算法的改进 287
12.5.5 k-means图像分割的显示 287
12.6 k-means算法面试题解答 288
12.7 k-means算法自测题 289
12.8 小结 289
第 13章 机器学习算法之PCA
13.1 巧拼十八掌法引入PCA聚类 291
13.2 聚类的概念和分类 291
13.2.1 聚类的概念 291
13.2.2 分层凝聚聚类方法 292
13.2.3 PCA聚类方法 292
13.3 PCA聚类方法的求解步骤 295
13.3.1 协方差矩阵 296
13.3.2 奇异值求解296
13.4 PCA实战示例:使用PCA实现菜品制作调料配比 298
13.4.1 准备数据:菜品制作调料配比表数据的读取 299
13.4.2 PCA算法:菜品制作调料配比表PCA降维 300
13.4.3 表征数据:菜品制作调料配比降维结果图示 300
13.5 PCA实战示例:使用PCA分析图像压缩技术 301
13.5.1 图像读取:Pillow模块读取图像 302
13.5.2 图像压缩:PCA算法实现图像压缩 302
13.5.3 错误率计算:图像压缩错误率的计算 304
13.6 PCA算法面试题解答 304
13.7 PCA算法自测题 305
13.8 小结 305
第Ⅳ篇 深度学习延伸篇
第 14章 深度学习延伸之卷积神经网络
14.1 认识神经网络 308
14.1.1 神经元 308
14.1.2 激活函数 310
14.2 认识卷积神经网络 312
14.2.1 卷积层 313
14.2.2 一维卷积过程 316
14.2.3 卷积神经网络输入层前向传播到卷积层 322
14.2.4 池化层 323
14.2.5 全连接层 324
14.3 Keras框架实现卷积神经网络 324
14.3.1 Keras模块介绍 324
14.3.2 Keras框架的安装 325
14.3.3 Keras框架数据集的准备 325
14.3.4 Keras实现CNN卷积神经网络 326
14.4 小结 333
第Ⅴ篇 项目技能实战篇
第 15章 机器学习实战之验证码识别
15.1 验证码识别 336
15.2 图像处理的灰度化、二值化 337
15.2.1 像素点 337
15.2.2 图像灰度化 340
15.2.3 图像二值化 342
15.3 图像分割 343
15.3.1 按区域划分的图像分割技术 343
15.3.2 按边缘划分的图像分割技术 345
15.3.3 图像分割技术的进阶 347
15.4 KNN算法测试验证码 351
15.4.1 Sklearn包的介绍 351
15.4.2 KNN算法测试验证码 352
15.5 小结 354
第 16章 机器学习实战之答题卡识别
16.1 答题卡识别 356
16.2 OpenCV 356
16.2.1 OpenCV介绍 356
16.2.2 安装和使用OpenCV 357
16.2.3 OpenCV存取图像 357
16.2.4 OpenCV图像灰度化 359
16.2.5 OpenCV图像二值化 360
16.2.6 OpenCV边缘检测 367
16.3 OpenCV形态学中腐蚀与膨胀 376
16.3.1 形态学中的膨胀 377
16.3.2 形态学中的腐蚀 381
16.3.3 腐蚀和膨胀的应用 385
16.4 OpenCV轮廓findContours和drawContours 386
16.5 OpenCV霍夫直线检测 388
16.6 答题卡识别 391
16.7 小结 396
第 17章 简历分享就业之机器学习简历指导
17.1 机器学习简历中应提及的技能 398
17.2 机器学习简历中项目的描述 398
17.3 机器学习简历分享 398
17.4 小结 400