本书由一线的资深数据分析师精写,以新版Python 3.10作为数据分析与挖掘的编程语言,循序渐进地介绍了Python数据分析的方法与技巧以及机器学习算法及其应用案例。全书首先讲解Python基础语法,以便于从未接触过编程的读者能够快速上手,然后介绍了当前流行的常用数据分析工具,如数值计算工具NumPy、数据处理工具Pandas、数据可视化工具Matplotlib和数据挖掘工具Sklearn等,后介绍了10大常用机器学习算法及其在数据挖掘中的应用,针对每一个算法均给出了案例实现,以便于读者能够学有所用。 本书凝聚编者十余年工作心得,以丰富实例介绍理论知识,并给出大量应用实践,很适合初入数据分析职场的从业者提升技能,本书也可以作为统计学、数学、经济学、金融学、管理学以及相关理工科专业的本科生、研究生的教学参考书。
1. 零基础入手,精心设计的知识体系
本书首先介绍Python 3.10版本的基础语法,并针对初学者构建数据分析与机器学习的实验环境,以便初学者无障碍上手。全书内容循序渐进,在精要介绍基础语法之后,还介绍了当前流行的数据分析工具,后介绍了机器学习算法在数据分析和挖掘中的应用。读者通过阅读本书能够整体上掌握数据分析的重要方法、工具与技术。
2. 全面介绍流行工具的使用,应对工作需求
本书针对当前流行的数据分析工具分章介绍,包括数值计算工具NumPy、数据处理工具Pandas、数据可视
化工具Matplotlib、数据建模工具Sklearn等。每一个工具都从基础讲起,并辅之以案例演示,读者可以边学边练,快速掌握技能,其中很多案例都来自于工作实践,可以真正提升读者的实战技能,以应对工作需求。
3.详细讲解10大机器学习算法,并辅之以丰富的案例
本书针对数据挖掘中经常使用的算法进行了详细的介绍,其中每一个算法首先介绍理论知识,然后给出算法在实际案例中的应用,理论与实践并重,可以帮助读者真正理解算法并加以应用,从而提升读者数据分析和挖掘的综合能力。
4. 配书资源丰富,大幅提升学习效率
为了方便读者轻松、高效地学习本书内容,作者还为本书录制了全程教学视频,针对各章内容进行了详细的讲解,读者扫描本书提供的二维码即可随时随地观看,大幅提升学习效率。
本书还提供了全部实例的源代码,所有源代码均在Python 3.10和相应编程工具环境下测试通过,读者下载后可以直接调用,以方便上机演练。
本书还制作了精彩的PPT课件,旨在方便有教学需求的读者使用。
人工智能(AI)是目前炙手可热的一个领域,互联网公司纷纷表示人工智能将是下一个时代的革命性技术。机器学习属于人工智能的一个重要分支,其更偏向于理论,目的是让计算机不断从大量数据中学习知识,自动实现知识发现和预测,使结果不断接近目标。
在实际工作中,我们比较常见的是数据分析的概念,是用适当的统计分析方法对收集来的大量数据进行分析,以求化地利用数据,从而发挥其商业价值。目前,数据分析已经是一种比较成熟的技术,而机器学习还处于快速发展的过程中,主要依靠算法和数据进行驱动。
在数据分析和机器学习研究热潮中,相关图书大多偏重于理论。由于Python是开源免费的,而且目前市场上从零基础深入介绍数据分析和机器学习的图书较少,鉴于此,本书基于新版本的Python 3.10编写,全面而系统地讲解基于Python的数据分析和机器学习技术。
本书既包括Python数据分析的主要方法和技巧,又融入了机器学习的案例实战,使广大读者通过对本书的学习,能够轻松快速地掌握数据分析和机器学习的主要方法。本书配套资源中包含案例实战中所采用的数据源,以及教学PPT和学习视频,供读者在阅读本书时练习使用。
本书的内容
第1章介绍数据分析的流程和思维、搭建Python 3.10开发环境以及必会的包(库)。
第2章介绍Python核心基础,包括数据类型、基础语法、常用高阶函数和编程技巧。
第3章介绍如何进行数据准备,包括数据的读取、索引、切片、聚合、透视、合并等。
第4章介绍NumPy基础知识和操作,包括索引与切片、维度变换、广播机制和矩阵运算。
第5章介绍如何利用Pandas进行数据清洗,包括重复值、缺失值、异常值的检测和处理。
第6章介绍Matplotlib绘图参数设置,包括线条、坐标轴、图例、绘图函数和图形整合等。
第7章介绍机器学习及Sklearn库的基本概念、基本流程、主要算法和自带的主要数据集等。
第8章介绍监督式机器学习算法,包括线性回归、逻辑回归、决策树、K近邻和支持向量机等。
第9章介绍无监督式机器学习算法、包括K均值聚类、主成分分析、关联分析和双聚类分 析等。
第10章详细介绍机器学习的挑战、模型的主要评估方法,并通过实际案例介绍模型的调优 方法。
第11章介绍基于中文的文本分词、关键词提取技术,以及如何生成词向量和进行中文情感 分析。
本书的特色
(1)零基础入手,精心设计知识体系
本书首先介绍Python 3.10版本的基础语法,并针对初学者构建数据分析与机器学习的实验环境,以便初学者无障碍上手。全书内容循序渐进,在精要介绍基础语法之后,还介绍了当前流行的数据分析工具,后介绍机器学习算法在数据分析和挖掘中的应用,以便读者通过阅读本书能够整体上掌握数据分析的重要工具、方法与技术。
(2)全面介绍流行工具的使用,应对工作需求
本书主要针对当前流行的数据分析工具分章介绍,包括数值计算工具NumPy、数据处理工具Pandas、数据可视化工具Matplotlib、数据建模工具Sklearn等。每一个工具都从基础讲解,并辅之以案例演示,读者可以边学边练,快速掌握技能。其中也有很多案例来自于工作实践,可以真正提升读者的实战技能,读者通过本书的学习能够应对工作需求。
(3)详细讲解十大机器学习算法,并辅之以丰富的案例
本书针对数据挖掘中经常使用的算法进行了详细介绍,其中每一个算法首先介绍理论知识,然后给出算法在实际案例中的应用,理论与实践并重,可以帮助读者真正理解算法并加以应用,从而提高读者数据分析和机器学习的综合能力。
源码、PPT课件、教学视频下载
本书每一章都有对应的数据源和完整代码,代码均包含具体的中文注释。另外,本书还提供了教学PPT。读者可以扫描以下二维码获取文件:
如果在下载过程中出现问题,请发送电子邮件至booksaga@126.com,邮件主题为零基础入门Python数据分析与机器学习。
本书还提供了全程视频教学,读者扫描书中各章的二维码即可观看学习。
本书的读者对象
本书的内容和案例适用于互联网、咨询、零售、能源等行业从事数据分析的读者,也可以作为培训机构或大专院校相关课程和专业的教学用书。
由于编者水平所限,虽然尽心竭力,但仍然难免存在疏漏之处,敬请广大读者与专家不吝指正。
编 者
2021年5月20日
王国平,毕业于上海海洋大学,硕士,从业十余年,主要从事数据可视化、数据挖掘和大数据分析与研究等工作。精通Tableau、SPSS、SPSS Modeler、Power BI等软件,已出版《IBM SPSS Modeler数据与文本挖掘实战》《Microsoft Power BI数据可视化与数据分析》《Tableau数据可视化从入门到精通》《SPSS统计分析与行业应用实战》等专著 。
第1章 构建数据分析开发环境 1
1.1 数据分析概述 1
1.1.1 为什么要进行数据分析 1
1.1.2 数据分析的流程与思维 2
1.2 开发环境的构建 4
1.2.1 安装Anaconda 5
1.2.2 安装Jupyter库 6
1.2.3 安装PyCharm社区版 8
1.2.4 包管理工具 11
1.2.5 环境测试 12
1.3 必会的Python数据分析包 12
1.3.1 NumPy数组操作 13
1.3.2 Pandas数据清洗 13
1.3.3 Matplotlib数据可视化 14
1.3.4 Sklearn数据建模 16
1.4 一个简单的数据分析案例 17
1.5 小结与课后练习 19
第2章 Python核心基础 20
2.1 Python数据类型 20
2.1.1 数值类型 20
2.1.2 字符串类型 21
2.1.3 列表类型 23
2.1.4 元组类型 24
2.1.5 集合类型 25
2.1.6 字典类型 27
2.2 Python基础语法 28
2.2.1 代码行与缩进 28
2.2.2 条件if及if嵌套 29
2.2.3 循环:while与for 30
2.2.4 格式化:format()与% 32
2.3 Python高阶函数 34
2.3.1 map()函数 34
2.3.2 reduce()函数 35
2.3.3 filter()函数 36
2.3.4 sorted()函数 36
2.4 Python编程技巧 37
2.4.1 自动补全程序 37
2.4.2 变量值的互换 38
2.4.3 列表解析式 39
2.4.4 元素序列解包 40
2.5 小结与课后练习 41
第3章 Python数据分析基础 42
3.1 数据的读取 42
3.1.1 本地离线数据 42
3.1.2 Web在线数据 44
3.1.3 常用数据库数据 45
3.2 数据的索引 46
3.2.1 创建与查看索引 46
3.2.2 索引重构与恢复 48
3.2.3 索引调整与排序 49
3.3 数据的切片 49
3.3.1 提取多列数据 50
3.3.2 提取多行数据 51
3.3.3 提取区域数据 51
3.4 数据的聚合 52
3.4.1 指定列数据统计 52
3.4.2 多字段分组统计 53
3.4.3 自定义聚合指标 54
3.5 小结与课后练习 55
第4章 NumPy数组操作 56
4.1 NumPy索引与切片 56
4.1.1 数组的索引 56
4.1.2 布尔型索引 57
4.1.3 花式索引 59
4.1.4 数组的切片 60
4.1.5 设置切片步长 61
4.2 NumPy维数变换 62
4.2.1 reshape()函数 62
4.2.2 shape()函数 63
4.2.3 resize()函数 64
4.2.4 ravel()函数 65
4.2.5 flatten()函数 66
4.3 NumPy广播机制 67
4.3.1 广播 67
4.3.2 广播机制 68
4.3.3 广播机制变化过程 69
4.3.4 广播不兼容 70
4.4 NumPy矩阵运算 72
4.4.1 矩阵概述 72
4.4.2 矩阵的乘法 74
4.4.3 矩阵的内积 74
4.4.4 矩阵的外积 75
4.5 小结与课后练习 77
第5章 Pandas数据清洗 78
5.1 重复值检测与处理 78
5.1.1 重复值的检测 78
5.1.2 重复值的处理 79
5.2 缺失值检测与处理 80
5.2.1 缺失值的检测 81
5.2.2 缺失值的处理 81
5.3 异常值检测与处理 84
5.3.1 异常值的检测 85
5.3.2 异常值的处理 86
5.4 金融数据的处理实战 87
5.4.1 读取上证指数数据 87
5.4.2 提取特定日期数据 88
5.4.3 填充非交易日数据 89
5.5 小结与课后练习 90
第6章 Matplotlib数据可视化 91
6.1 图形参数设置 91
6.1.1 设置图形线条 91
6.1.2 设置图形坐标轴 94
6.1.3 设置图形图例 97
6.2 绘图参数文件及主要函数 99
6.2.1 修改绘图参数文件 99
6.2.2 主要绘图函数简介 100
6.2.3 绘图函数应用案例分析某企业2020年销售额增长情况 101
6.3 Matplotlib图形整合 102
6.3.1 subplot()函数 103
6.3.2 subplots()函数 104
6.3.3 图形整合实战分析2020年某企业产品销售的区域差异性 105
6.4 Matplotlib可视化案例 107
6.4.1 商品区域销售额条形图 107
6.4.2 商品每周利润率折线图 110
6.4.3 商品利润贡献率饼图 112
6.5 小结与课后练习 114
第7章 Scikit-Learn机器学习 116
7.1 机器学习及其类型 116
7.1.1 机器学习的特点 116
7.1.2 机器学习的分类 117
7.1.3 机器学习的应用 119
7.2 Sklearn机器学习概述 120
7.2.1 Sklearn的基本概念 120
7.2.2 Sklearn的主要算法 121
7.2.3 选择合适的算法 124
7.3 Sklearn机器学习流程 125
7.3.1 获取数据 126
7.3.2 预处理数据 126
7.3.3 训练模型 127
7.3.4 评估模型 128
7.3.5 优化模型 128
7.3.6 应用模型 129
7.4 Sklearn自带的数据集 129
7.4.1 鸢尾花数据集简介 129
7.4.2 乳腺癌数据集简介 131
7.4.3 波士顿房价数据集简介 132
7.4.4 糖尿病数据集简介 133
7.4.5 手写数字数据集简介 134
7.4.6 红酒数据集简介 135
7.5 小结与课后练习 136
第8章 监督式机器学习 137
8.1 线性回归及其案例 137
8.1.1 线性回归简介 137
8.1.2 线性回归的建模 138
8.1.3 汽车价格的预测 141
8.2 逻辑回归及其案例 145
8.2.1 逻辑回归简介 146
8.2.2 逻辑回归的建模 146
8.2.3 客户收入的预测 147
8.3 Lasso回归与Ridge回归 151
8.3.1 Lasso回归及案例 151
8.3.2 Ridge回归及案例 153
8.3.3 两种回归的比较 154
8.4 决策树及其案例 155
8.4.1 决策树简介 155
8.4.2 决策树的建模 158
8.4.3 蘑菇类型的预测 159
8.5 K近邻算法及其案例 166
8.5.1 K近邻算法简介 166
8.5.2 K近邻算法的建模 166
8.5.3 乳腺癌患者的分类 168
8.6 支持向量机及其案例 169
8.6.1 支持向量机简介 169
8.6.2 支持向量机的建模 170
8.6.3 乳腺癌患者的分类 172
8.7 小结与课后练习 174
第9章 无监督式机器学习 175
9.1 聚类分析及其案例 175
9.1.1 K均值聚类算法及案例 175
9.1.2 使用手肘法判断聚类数 180
9.1.3 轮廓系数法判断聚类数 181
9.2 因子分析及其案例 185
9.2.1 因子分析概述 185
9.2.2 因子分析的建模 186
9.2.3 地区竞争力的因子分析 187
9.3 主成分分析及其案例 193
9.3.1 主成分分析概述 193
9.3.2 主成分分析的建模 194
9.3.3 乳腺癌患者的主成分分析 195
9.4 关联分析及其案例 198
9.4.1 关联分析概述 198
9.4.2 关联分析的建模 199
9.4.3 电商商品购物篮分析 200
9.5 离群点检测及其案例 203
9.5.1 离群点检测概述 203
9.5.2 椭圆模型拟合及案例 204
9.5.3 局部离群因子及案例 207
9.6 双聚类分析及其案例 211
9.6.1 双聚类分析概述 211
9.6.2 联合谱聚类及案例 211
9.6.3 谱双聚类及案例 213
9.7 小结与课后练习 216
第10章 模型评估与调优 217
10.1 机器学习的挑战 217
10.1.1 训练样本的大小 217
10.1.2 数据的不平衡 218
10.1.3 异常值的处理 218
10.1.4 模型的过拟合 219
10.1.5 特征的选择 219
10.2 模型的评估方法 219
10.2.1 混淆矩阵及案例 220
10.2.2 模型评估指标及案例 221
10.2.3 ROC曲线及案例 223
10.2.4 AUC及案例 225
10.2.5 R平方及案例 227
10.2.6 残差及案例 229
10.3 模型的调优方法 231
10.3.1 交叉验证及案例 231
10.3.2 网格搜索及案例 233
10.3.3 随机搜索及案例 235
10.4 小结与课后练习 236
第11章 Python中文文本分析 237
11.1 中文结巴分词 237
11.1.1 文本分词模式 237
11.1.2 自定义停用词 239
11.2 中文关键词提取 240
11.2.1 TF-IDF算法 240
11.2.2 TextRank算法 241
11.3 中文词向量生成 242
11.3.1 训练词向量模型 242
11.3.2 计算文本词向量 244
11.4 中文情感分析 245
11.4.1 文本情感建模 246
11.4.2 文本情感预测 247
11.5 小结与课后练习 249
附录A Python 3.10.0及第三方库安装 250
附录B Python常用第三方工具包简介 254
B.1 数据分析类包 254
B.2 数据可视化类包 255
B.3 机器学习类包 256