描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121384257
本书结合作者十余年软件开发、系统架构、算法实战及培训经验,致力于系统地阐释Python大数据和机器学习技术。从数据的采集、存储、清洗;到建立模型、统计分析;*终用前端程序呈现给用户的数据展示;以及后台的系统服务支持。结合了Python数据工具使用、算法原理、以及典型实例各个层面,希望读者通过对本书的阅读,少走弯路,以*小的学习成本得到*的知识收益。
目 录
第1章 Python大数据开发入门 1
1.1 大数据工程师必备技能 1
1.2 Python开发环境 5
1.2.1 Windows环境 5
1.2.2 Linux环境 7
1.2.3 Docker环境 10
1.3 Python开发工具 16
1.3.1 Python命令行环境 16
1.3.2 Jupyter环境 18
1.4 Python数据类型 23
1.4.1 数值 24
1.4.2 字符串 24
1.4.3 列表 25
1.4.4 元组 26
1.4.5 集合 26
1.4.6 字典 27
1.5 Python函数和类 27
1.5.1 定义和使用函数 28
1.5.2 lambda匿名函数 28
1.5.3 类和继承 28
1.6 Python常用库 29
1.6.1 Python内置库 29
1.6.2 Python图形图像处理 30
1.6.3 Python自然语言处理 31
1.6.4 Python数据分析和
处理 32
1.6.5 Python机器学习 33
1.7 Python技巧 34
1.7.1 Python程序调试 34
1.7.2 去掉警告信息 35
1.7.3 制作和导入模块 36
1.7.4 异常处理 37
1.8 Python常见问题 38
第2章 科学计算Numpy 40
2.1 多维数组 40
2.1.1 创建数组 40
2.1.2 访问数组 42
2.1.3 修改数组 43
2.2 数组元素运算 44
2.2.1 一元函数 44
2.2.2 二元函数 45
2.2.3 广播 46
2.2.4 自定义ufunc函数 47
2.3 常用函数 48
2.3.1 分段函数 48
2.3.2 统计函数 49
2.3.3 组合与分割 51
2.3.4 矩阵与二维数组 52
2.3.5 其他常用函数 54
第3章 数据操作Pandas 55
3.1 数据对象 55
3.1.1 Series对象 55
3.1.2 DataFrame对象 57
3.1.3 Index对象 60
3.2 数据存取 63
3.2.1 访问数据表元素 63
3.2.2 修改数据表元素 66
3.3 分组运算 68
3.3.1 分组 69
3.3.2 聚合 70
3.3.3 转换 71
3.3.4 过滤 72
3.3.5 应用 72
3.4 日期时间处理 73
3.4.1 Python日期时间处理 73
3.4.2 Pandas日期时间处理 75
3.4.3 时间序列操作 76
3.4.4 数据重排 84
第4章 数据可视化 86
4.1 Matplotlib绘图库 87
4.1.1 准备工作 87
4.1.2 散点图与气泡图 88
4.1.3 线图 90
4.1.4 柱图 92
4.1.5 饼图 95
4.1.6 箱线图和小提琴图 96
4.1.7 三维图 97
4.1.8 Matplotlib绘图区域 100
4.1.9 文字显示问题 103
4.1.10 导出图表 104
4.1.11 Matplotlib技巧 105
4.2 Seaborn高级数据可视化 107
4.2.1 准备工作 107
4.2.2 连续变量相关图 108
4.2.3 分类变量图 109
4.2.4 回归图 113
4.2.5 多图组合 115
4.2.6 热力图 118
4.2.7 印刷品作图 119
4.3 PyEcharts交互图 119
4.3.1 ECharts 119
4.3.2 准备工作 120
4.3.3 绘制交互图 120
4.3.4 在网页中显示图 123
第5章 获取数据 125
5.1 读写文件 126
5.1.1 读写文本文件 126
5.1.2 写日志文件 127
5.1.3 读写XML文件 128
5.1.4 读写Json文件 130
5.1.5 读写CSV文件 131
5.1.6 读写PKL文件 132
5.1.7 读写HDF5文件 133
5.1.8 读写Excel文件 134
5.2 读写数据库 135
5.2.1 数据库基本操作 136
5.2.2 Python存取MySQL
数据库 138
5.2.3 Python存取SQL Server
数据库 140
5.2.4 Python存取Sqlite
数据库 143
5.2.5 Python存取Dbase
数据库 143
5.3 读写数据仓库 144
5.3.1 读取ElasticSearch
数据 144
5.3.2 读取S3云存储数据 146
5.3.3 读取Hive数据 148
5.4 获取网络数据 151
5.4.1 从网络接口读取
数据 151
5.4.2 抓取网站数据 152
5.4.3 使用POST方法抓取
数据 153
5.4.4 转换HTML文件 153
5.5 选择数据存储方式 154
第6章 数据预处理 155
6.1 数据类型识别与转换 155
6.1.1 基本类型转换 156
6.1.2 数据类型识别 157
6.2 数据清洗 158
6.2.1 缺失值处理 158
6.2.2 异常值处理 160
6.2.3 去重处理 162
6.3 数据归约 163
6.3.1 经验筛选特征 163
6.3.2 统计学方法筛选
特征 163
6.3.3 模型筛选特征 164
6.3.4 数学方法降维 165
6.4 数据抽样 166
6.4.1 简单随机抽样 167
6.4.2 系统抽样 168
6.4.3 分层抽样 168
6.4.4 整群抽样 168
6.5 数据组合 169
6.5.1 merge函数 169
6.5.2 concat函数 170
6.6 特征提取 171
6.6.1 数值型特征 171
6.6.2 分类型特征 171
6.6.3 字符型特征 172
第7章 数据分析 175
7.1 入门实例 175
7.2 假设检验 177
7.2.1 基本概念 177
7.2.2 假设检验的步骤 178
7.2.3 统计分析工具 178
7.3 参数检验与非参数检验 179
7.3.1 正态性检验 179
7.3.2 方差齐性检验 181
7.3.3 分析检验结果 182
7.4 T检验 182
7.4.1 单样本T检验 182
7.4.2 独立样本T检验 183
7.4.3 配对样本T检验 183
7.5 方差分析 184
7.6 秩和检验 185
7.7 卡方检验 186
7.8 相关性分析 187
7.8.1 图形描述相关性 188
7.8.2 正态资料的相关
分析 189
7.8.3 非正态资料的相关
分析 190
7.9 变量分析 190
7.9.1 单变量分析 190
7.9.2 多变量分析 191
7.10 TableOne工具 193
7.11 统计方法总结 194
第8章 机器学习基础知识 196
8.1 基本概念 196
8.1.1 深度学习、机器学习、
人工智能 197
8.1.2 有监督学习、无监督
学习、半监督学习 197
8.1.3 训练集、验证集、
测试集 198
8.1.4 过拟合与欠拟合 198
8.1.5 常用术语 199
8.2 评价模型 199
8.2.1 方差、协方差、协
方差矩阵 200
8.2.2 距离与范数 204
8.2.3 回归效果评估 207
8.2.4 分类效果评估 210
第9章 机器学习模型与工具 216
9.1 基于距离的算法 217
9.1.1 K近邻算法 217
9.1.2 聚类算法 219
9.2 线性回归与逻辑回归 221
9.2.1 线性回归 222
9.2.2 逻辑回归 225
9.3 支持向量机 226
9.4 信息熵和决策树 230
9.4.1 信息量和熵 231
9.4.2 决策树 234
9.5 关联规则 236
9.5.1 Apriori关联规则 237
9.5.2 FP-Growth关联
分析 240
9.6 贝叶斯模型 242
9.6.1 贝叶斯公式 242
9.6.2 朴素贝叶斯算法 244
9.6.3 贝叶斯网络 248
9.7 隐马尔可夫模型 250
9.8 集成算法 254
第10章 模型选择与相关技术 259
10.1 数据准备与模型选择 259
10.1.1 预处理 259
10.1.2 选择模型 260
10.2 自动机器学习框架 263
10.2.1 框架原理 263
10.2.2 Auto-Sklearn 264
10.2.3 Auto-ML 266
10.2.4 Auto-Keras 267
10.3 自然语言处理 269
10.3.1 分词工具 269
10.3.2 TF-IDF 271
10.4 建模相关技术 274
10.4.1 切分数据集与交叉
验证 274
10.4.2 模型调参 276
10.4.3 学习曲线和验证
曲线 279
10.4.4 保存模型 282
第11章 大数据竞赛平台 283
11.1 定义问题 283
11.1.1 强人工智能与弱
人工智能 284
11.1.2 Datathon竞赛 285
11.2 算法竞赛 286
11.2.1 大数据竞赛平台
优势 287
11.2.2 Kaggle大数据
平台 288
11.2.3 实战泰坦尼克号
幸存问题 288
11.2.4 国内大数据平台 294
11.2.5 赛题选择 294
11.2.6 比赛注意事项 295
第12章 决策问题:幸福感挖掘 296
12.1 赛题解读 296
12.2 模型初探 297
12.3 模型调优 299
12.3.1 模型粗调 299
12.3.2 模型精调 300
12.4 模型输出 305
12.4.1 显示决策树 305
12.4.2 特征重要性 306
12.5 XGBoost模型 307
12.5.1 XGBoost参数分析 307
12.5.2 XGBoost原理解析 308
12.5.3 XGBoost源码分析 312
第13章 迁移学习:猫狗图片分类 317
13.1 深度学习神经网络 317
13.1.1 深度学习 318
13.1.2 卷积神经网络 319
13.1.3 卷积神经网络
发展史 321
13.2 使用现有的神经网络模型 321
13.3 迁移学习 322
13.4 解决猫狗分类问题 323
13.4.1 数据及代码结构 323
13.4.2 提取特征 324
13.4.3 训练模型和预测 325
13.4.4 训练结果分析 326
13.4.5 代码下载 327
第14章 图像分割:识别图中物体 328
14.1 Mask R-CNN算法 329
14.1.1 R-CNN 329
14.1.2 SPP Net 330
14.1.3 Fast R-CNN 330
14.1.4 Faster R-CNN 331
14.1.5 Mask R-CNN 332
14.2 Mask R-CNN源码解析 332
14.2.1 安装工具 332
14.2.2 源码结构 333
14.3 训练模型与预测 334
14.3.1 制作训练数据 335
14.3.2 训练模型和预测 338
14.3.3 建模相关问题 344
第15章 时间序列分析 346
15.1 时序问题处理流程 346
15.1.1 分析问题 346
15.1.2 解决思路 347
15.2 趋势分析工具ARIMA 349
15.2.1 相关概念 349
15.2.2 模型示例 353
15.3 傅里叶和小波变换 357
15.3.1 傅里叶变换 358
15.3.2 小波变换 360
15.4 Prophet时序模型 361
15.4.1 模型介绍 362
15.4.2 获取数据 362
15.4.3 模型示例 363
第16章 自然语言处理:微博互动
预测 367
16.1 赛题分析 367
16.1.1 数据分析 368
16.1.2 1
前 言
为什么要写这本书?
随着5G时代的来临、企事业单位信息化系统的不断完善以及物联网的兴起,数据的收集、传输、存储不再是问题,数据的质量和数量都呈爆发式增长。大数据开发的焦点逐渐从数据收集统计向挖掘新功能、节约成本、创造价值的方向转变,从而催生出大量的应用,并且开始在各个垂直领域开花结果。
人工智能和大数据技术是一门交叉学科,不仅需要计算机领域的知识和算法技术,而且还需要应用领域的相关知识和技巧才能定义和解决问题。可以说,大数据不仅是一门技术,而且是一种思维。机器从数据中学习知识、总结经验,并不断自我进化,整个行业将迎来从信息化向智能化蓬勃发展的时期。
从业者也将面临前所未有的挑战:如何定义问题、选择数据、架构系统、评估工作量、完成工作需要哪些技能……这些问题也随着行业的变化而逐步演进。对于从业者的技术要求越来越高,同时也产生了巨大的人才缺口。
在此时代背景下,大量学生和有经验的程序员都希望能向人工智能和大数据的方向发展,而该领域又涉及系统集成、数据仓库、网络数据获取、统计学、数学基础、机器学习建模以及结果的展示等方面,使得该行业“门槛”比较高。对于日新月异的新兴行业,技术更新迭代速度非常快,目前学校和培训机构开设的课程有限,且水平良莠不齐。在校招时,笔者就发现本科生往往很难达到算法工程师的要求。
那么,如何培养数据工程师并使其在有限的时间内了解整个系统的运行方式,同时出色地完成自身的工作,对学校和企业来说都是必须面对的问题。目前,市场上的大数据书籍和教程基本分为两类:一类偏重算法概念,实用性较差,读者的学习过程比较艰难枯燥,学习之后也很难与实际工作相结合;另一类偏重讲解语言和工具的用法,实例相对简单,与真实应用场景差别较大。
在本书的撰写过程中,笔者遵循全面、实战、目标导向的原则,以在实际工作中大数据工程师需要掌握的技术为目标,系统地讲解了数据工程师的必备技能;由程序员转行的数据工程师也可以从这本书中学习算法和统计学原理,在使用工具时不仅可以知其然,还可以知其所以然。在结构上,本书并没有为保持完整性而用相同篇幅讲解所有功能,而是根据实践经验梳理出常用的问题和场景,让读者用最短的时间,掌握最核心的知识,避免陷入细枝末节中。
本书有何特色?
1.从系统角度出发
本书涉及大数据工程的方方面面,从问题的定义、数据评估,到具体实现,如数据获取(爬虫)、数据存储(数据库、数据仓库)、特征工程、数据展示、统计分析、建立模型以及简单的前端展示。其中,还涉及数据集群的搭建(Linux、Docker)。本书可以使读者了解数据工作的全貌,学习整个数据系统的运作和相关技能,具有全局思维,而不只是熟悉小范围内的具体工作。企业也可以将本书作为从事与大数据相关工作人员的培训资料。
2.理论与实际结合
本书从始至终都本着理论和实际相结合的原则,在原理章节(第7至10章)中阐释原理、推导公式的同时,给出例程并讨论该方法常见的使用场景;在实战章节(第11至16章)中除了展示前沿算法的使用方法,还介绍了相关概念、公式推导以及源代码。本书把学和用联系起来,既能在学习时了解使用场景,又能在使用时了解其背后的原理和算法演进过程。
3.主次分明
本书并不是某一具体领域方法的罗列和知识的总结,并不为了保持其完整性使用同等篇幅介绍所有功能。本书更多地着眼于基础知识、常见的需求和方法,尽量将它们组织起来,以解决具体问题的方式偏重关键点,简略说明次要部分。在学习时间和学习难度两方面降低读者的学习成本。
4.前沿技术
目前,在很多偏重原理的算法书中主要讲解的都是20世纪八九十年代流行的算法,这些基础算法都是复杂算法的基础,机器学习从业人员必须了解,但在实用方面,它们早已被当前的主流算法所取代。
本书也使用了一定篇幅讲解基础算法和统计学方法,同时在实战章节中引入近几年的前沿技术,如NLP领域的BERT算法、图像分割的Mask R-CNN算法、机器学习XGBoost的原理推导以及源码的讲解。
5.典型示例
本书后半部分以实例为主,每个实例针对一种典型的问题,包括决策问题、自然语言处理、时间序列、图像处理等,其中大部分代码函数可以直接用在类似的场景中。同时,也在各个章节中加入了示例代码,对于常见问题,读者可快速找到其解决方法并且直接使用其代码。
6.通俗易懂
本书的语言通俗易懂,并在相对生涩的算法原理章节中加入了大量举例和相关基础知识,尽量让读者在阅读过程中无须查阅其他有关基础知识的书籍,以提高学习效率。
本书内容及知识体系
第1章 Python编程
本章介绍作为大数据工程师需要掌握的基本技术,让读者对数据分析的知识体系有一个整体的认知,然后讲解各种Python开发和运行环境的搭建,以及Python的基本数据结构和语法、调试技术和常见问题。不熟悉Python编程的开发者可通过学习本章掌握Python语言的特点和使用方法。
第2~4章 Python数据分析工具
本部分详细介绍数据处理使用的科学计算库Numpy、数据操作库Pandas、数据可视化工具Matplotlib和Seaborn,以及交互作图工具PyEcharts的数据处理逻辑和常用方法示例,为后续的数据处理奠定基础。
第5~10章 Python数据处理与机器学习算法
本部分涉及数据采集、数据存储、特征工程、统计分析,建立机器学习模型的基本概念、原理、具体实现方法、统计方法和模型的选择,以及在实现机器学习算法过程中常用的工具和技巧。其将理论、举例和Python代码有机地结合在一起,分别讲解数据处理的每一个子模块。
第11~16章 Python实战
本部分介绍决策问题、迁移学习、图像分割、时序分析、自然语言处理,以及定义问题的方法等几类典型的机器学习问题,兼顾使用场景分析、原理、代码解析等层面,和读者一起探讨在实战中解决问题的思路和方法。
适合阅读本书的读者
? 向人工智能和大数据方向发展的工程师。
? 学习Python算法和数据分析的工程师。
? 希望了解大数据工作全流程的行业从业者。
? 希望将数据算法应用于传统行业的从业者(金融、医疗、经济等)。
? 有一定的大数据理论基础,但没有实战经验的研究人员。
? 大数据和人工智能方向的创业者。
? 大数据行业的项目经理、产品经理、客户经理、产品设计师。
? 希望了解人工智能和大数据开发的学生、教师、专业培训机构的学员。
阅读本书的建议
? 对于没有Python编程基础的读者,建议从第1章开始阅读并演练每一个实例。
? 对于有经验的程序员,建议先通读本书,对大数据相关问题建立整体认知。对于具体的语法以及库的使用方法,不用一次掌握,只需要了解其可实现的功能,在遇到问题时能从书中速查即可。
? 算法章节难度相对较大,但原理非常重要,放平心态认真阅读,绝大部分都能掌握,有些公式推导未必能一次理解,读不懂的部分可先遗留。
? 本书后半部分的实例章节,强烈建议读者在阅读的过程中编程实现和调试,并加入自己的改进方案,因为调试代码的效果要远远大于仅阅读代码的效果。
评论
还没有评论。