《Python3智能数据分析快速入门》
智能系统与技术丛书
Python3智能数据分析快速入门
李明江 张良均 周东平 张尚佳 著
PREFACE
前 言
为什么要写这本书
2017年7月,国务院下达了关于印发《新一代人工智能发展规划》的通知。通知明确指出要加快培养聚集人工智能高端人才,把高端人才队伍建设作为人工智能发展的重中之重。而后,2018年12月,普华永道发布了《人工智能和相关技术对中国就业的净影响》,报告预测,人工智能及相关技术在未来20年将取代中国现有约26%的工作岗位,高于对英国20%的预估,但也能通过提升生产率和实际收入水平在中国创造出大量的新的工作机会。根据普华永道估计,人工智能对中国就业的净影响可能将创造约12%的净增岗位,相当于未来20年内增加约9000万个就业岗位。那么如何才能够赶上人工智能的浪潮呢?
人工智能是一门综合了计算机科学、生理学、哲学的交叉学科。凡是使用机器替代人类实现认知、识别、分析、决策等功能,均可认为使用了人工智能技术。按照技术分支,可以将人工智能分为问题求解,知识、推理与规划,学习,通信、感知与行动四个大方向。其中学习即机器学习,与智能数据分析紧密相关。
跟国外相比,我国智能数据分析在零售、银行、保险、证券等行业中的应用并不太理想。但随着市场竞争的加剧,各行业对智能数据分析技术的意愿越来越强烈,可以预计,未来几年各行业的数据分析应用一定会从传统的统计分析发展到智能数据分析应用。在大数据时代,数据过剩、人才短缺,智能数据分析专业人才的培养又需要专业知识和职业经验积累。所以,本书在编程知识的基础之上,大篇幅地描写了智能分析常备知识,希望能为智能数据分析人才的培养提供参考。
总的来说,随着云时代的来临,智能数据分析技术将具有越来越重要的战略意义。大数据已经渗透到每一个行业和业务职能领域,逐渐成为重要的生产要素,人们对于海量数据的运用将预示着新一轮生产率增长和消费者盈余浪潮的到来。智能数据分析技术将帮助企业用户在合理时间内攫取、管理、处理、整理海量数据,为企业经营决策提供积极的帮助。智能数据分析作为数据存储和挖掘分析的前沿技术,已广泛应用于物联网、云计算、移动互联网等战略性新兴产业。虽然智能数据分析目前在国内还处于初级阶段,但是其商业价值已经显现出来,特别是有实践经验的智能数据分析人才更是成为各企业争夺的热门。为了满足日益增长的智能数据分析人才需求,很多大学开始尝试开设不同程度的智能数据分析课程。“智能数据分析”作为大数据时代的核心技术,必将成为高校数学与统计学专业的重要课程之一。
本书特色
本书作者从实践出发,总结了智能数据分析常用的方法,深入浅出地介绍了智能数据分析编程过程中的相关知识。书中涵盖Python环境搭建、Python基础语法、控制语句、函数、面向对象编程、数值计算、数据处理、绘图、模型构建等内容,还配套提供了程序代码及数据。此外,每章的最后均提供课后习题,帮助读者快速掌握Python的使用方法。
为了帮助读者更好地使用本书,泰迪云课堂(https://edu.tipdm.org)提供了配套的教学视频。对于本书配套的原始数据文件、Python程序代码,均可以通过关注泰迪学社微信公众号(TipDataMining),回复“图书资源”进行获取。为方便教师授课,本书还提供了PPT课件、教学大纲、教学进度表和教案等教学资源,教师可在泰迪学社微信公众号回复“教学资源”进行获取。
本书适用对象
开设有数据分析课程的高校的教师和学生。
目前国内不少高校将数据分析引入本科教学中,在数学、计算机、自动化、电子信息、金融等专业开设了数据分析技术相关的课程,但目前这一课程使用的教学工具仍然为SPSS、SAS等传统统计工具,并没有使用Python作为教学工具。本书提供了Python语言相关的从安装到使用的一系列知识,将有效指导高校教师和学生使用Python作为数据分析的工具之一。
数据分析开发人员。
数据分析开发人员的主要工作是将数据分析相关的算法应用于实际业务系统。本书提供了详细的机器学习与数据分析算法接口的用法与说明,能够帮助此类人员快速且有效地建立起数据分析应用的算法框架,帮助其迅速完成开发。
进行数据分析应用研究的科研人员。
许多科研院所为了更好地对科研工作进行管理,纷纷开发了适应自身特点的科研业务管理系统,并在使用过程中积累了大量的科研信息数据。但是,这些科研业务管理系统一般没有对这些数据进行深入分析,对数据所隐藏的价值并没有充分分析利用。科研人员需要数据分析工具及有关方法论来深挖科研信息的价值,从而提高科研水平。
关注高级数据分析的人员。
Python作为广泛应用于数据分析领域的编程语言,能为数据分析人员提供快速的、可靠的分析依据。本书提供全面的Python智能数据分析知识,能够指导这类人员快速入门数据分析,完成指定的数据分析任务。
如何阅读本书
本书从逻辑上可分为两大部分。
第一部分是Python编程基础(第1~4章),介绍了Python环境搭建、Python基础语法、控制语句、函数、面向对象编程等。第1章旨在让读者从全局把握Python,了解利用Python进行智能数据分析的优势,并详细介绍了Python环境搭建与配置,同时还对两个常用集成开发环境做了详细介绍。第2章先对Python固定语法做了介绍,包括编码声明、注释、缩进等;而后介绍了Python常见的数据类型,包括str、list、tuple、dict、set等;还介绍了Python常用运算符,包括算术运算符、逻辑运算符、成员运算符、位运算符等。第3章主要对控制语句做了详细介绍,包括条件语句和循环语句,同时还介绍了和条件语句类似的异常处理try-except-else语句。第4章主要介绍了Python的内置函数、自定义函数、面向对象编程以及第三方库的安装与使用方法。
第二部分是数据分析编程(第5~9章),主要对数据分析中常用的第三方库做了详细介绍,强调在Python中对应函数的使用方法及其结果的解释说明。内容涵盖数值分析库NumPy,数据处理库pandas,绘图库Matplotlib、Seaborn、Bokeh,机器学习与数据分析建模库scikit-learn。这一部分涉及数据读取、数据预处理、模型构建、模型评价、结果可视化,几乎涵盖了整个数据分析过程,充分而又详细地说明了Python数据分析的常用操作,相信在本书的指导下,读者能够从零开始快速数据入门分析。
勘误和支持
我们已经尽最大努力避免在文本和代码中出现错误,但是由于水平有限,编写时间仓促,书中难免出现一些疏漏和不足的地方。如果你有更多宝贵意见,欢迎在泰迪学社微信公众号回复“图书反馈”进行反馈。更多本系列图书的信息可以在“泰迪杯”数据挖掘挑战赛网站(http://www.tipdm.org/tj/index.jhtml)查阅。
张良均
2019年于广州
CONTENTS
目 录
前言
第4章 函数与对象 94
4.1 函数 94
4.1.1 内置函数 94
4.1.2 自定义函数 101
4.1.3 匿名函数 107
4.2 对象 109
4.2.1 面向对象简介 109
4.2.2 属性与方法 110
4.2.3 装饰器 116
4.2.4 继承和多态 119
4.3 Python常用库安装 126
4.3.1 第三方库安装 126
4.3.2 第三方库导入 130
4.3.3 第三方库创建 131
小结 132
课后习题 133
第5章 NumPy数值计算 135
5.1 ndarray创建与索引 135
5.1.1 创建ndarray对象 135
5.1.2 ndarray的索引与切片 142
5.2 ndarray的基础操作 145
5.2.1 变换ndarray的形态 145
5.2.2 排序与搜索 151
5.2.3 字符串操作 156
5.3 ufunc 159
5.3.1 ufunc的广播机制 159
5.3.2 常用ufunc 160
5.4 matrix与线性代数 169
5.4.1 创建NumPy矩阵 169
5.4.2 矩阵的属性和基本运算 170
5.4.3 线性代数运算 172
5.5 NumPy文件读写 175
5.5.1 二进制文件读写 175
5.5.2 文件列表形式数据读写 178
小结 180
课后习题 180
第6章 pandas基础 182
6.1 pandas常用类 182
6.1.1 Series 182
6.1.2 DataFrame 187
6.1.3 Index 191
6.2 DataFrame基础操作 193
6.2.1 索引 193
6.2.2 排序 201
6.2.3 合并 204
6.3 其他数据类型操作 210
6.3.1 时间操作 210
6.3.2 文本操作 220
6.3.3 category操作 223
小结 227
课后习题 227
第7章 pandas进阶 229
7.1 数据读取与写入 229
7.1.1 CSV 229
7.1.2 Excel 231
7.1.3 数据库 233
7.2 DataFrame进阶 235
7.2.1 统计分析 235
7.2.2 分组运算 242
7.2.3 透视表和交叉表 248
7.3 数据准备 250
7.3.1 缺失值处理 251
7.3.2 重复数据处理 255
7.3.3 连续特征离散化处理 256
7.3.4 哑变量处理 259
小结 260
课后习题 260
第8章 绘图 263
8.1 Matplotlib绘图基础 263
8.1.1 编码风格 263
8.1.2 动态rc参数 267
8.1.3 散点图 273
8.1.4 折线图 276
8.1.5 饼图 278
8.1.6 直方图与条形图 280
8.1.7 箱线图 282
8.2 Seaborn进阶绘图 285
8.2.1 Seaborn基础 285
8.2.2 关系图 301
8.2.3 分类图 311
8.2.4 分布图 329
8.2.5 回归图 334
8.2.6 矩阵图 341
8.2.7 网格图 345
8.3 Bokeh交互式绘图 356
8.3.1 基本构成与语法 356
8.3.2 常见图形绘制 370
8.3.3 导出与嵌入 375
8.3.4 运行Bokeh应用程序 379
小结 381
习题 381
第9章 scikit-learn 383
9.1 数据准备 383
9.1.1 标准化 383
9.1.2 归一化 387
9.1.3 二值化 388
9.1.4 独热编码 389
9.2 降维 391
9.2.1 PCA 392
9.2.2 随机投影 396
9.2.3 字典学习 402
9.2.4 独立成分分析 408
9.2.5 非负矩阵分解 412
9.2.6 线性判别分析 416
9.3 聚类 420
9.3.1 K-Means 421
9.3.2 层次聚类 424
9.3.3 DBSCAN 427
9.3.4 高斯混合模型 430
9.4 分类 434
9.4.1 Logistic回归 435
9.4.2 支持向量机 439
9.4.3 决策树 443
9.4.4 最近邻 447
9.4.5 朴素贝叶斯 450
9.4.6 随机森林 452
9.4.7 多层感知机 456
9.5 回归 460
9.5.1 最小二乘回归 461
9.5.2 岭回归 464
9.5.3 Lasso回归 466
9.5.4 决策树回归 468
9.5.5 随机森林回归 471
9.5.6 多层感知机回归 473
9.6 模型选择 476
9.6.1 数据集划分 476
9.6.2 交叉验证 478
9.6.3 自动调参 479
9.6.4 模型评估 481
小结 486
课后习题 487
- 点赞
- 收藏
- 关注作者
评论(0)