第1篇 基础入门篇第1章从零开始:初识数据分析与挖掘1.1什么是数据分析 31.1.1 与数据相关的概念 31.1.2 什么是大数据 31.1.3 数据分析工具 41.1.4 数据分析技术的发展 71.2什么是数据挖掘 81.2.1 数据挖掘相关概念 81.2.2 数据挖掘起源 91.2.3 数据挖掘要解决的问题 101.2.4 数据挖掘任务 101.3数据分析与挖掘的应用领域 111.4用Python进行数据分析与挖掘 121.4.1 Python语言概述 121.4.2 Python的优点 131.4.3 认识Python常用库 141.5本章小结 151.6思考与练习 15第2章Python数据分析基础2.1搭建Python开发环境 172.1.1 安装Python 172.1.2 安装PyCharm 182.1.3 安装Anaconda 192.1.4 安装与使用Jupyter 202.2Python基础 212.2.1 Python基础语法 212.2.2 Python基本数据类型 242.2.3 Python控制流与文件操作 312.2.4 Python函数与模块 392.2.5 Python面向对象程序设计 442.3本章小结 522.4思考与练习 52第3章Python数据分析相关库应用3.1NumPy 543.1.1 初识NumPy 543.1.2 创建数组 543.1.3 数组的基本操作 583.1.4 NumPy矩阵的基本操作 633.2SciPy 663.2.1 初识SciPy 663.2.2 统计子模块scipy.stats 663.2.3 优化子模块scipy.optimize 683.2.4 插值子模块scipy.interpolate 693.3Pandas 703.3.1 初识Pandas 703.3.2 Pandas的数据结构 703.3.3 Pandas对象的基本操作 733.3.4 基本统计分析 803.4Scikit-learn 823.4.1 初识Scikit-learn 823.4.2 线性回归模型 833.4.3 支持向量机 853.4.4 聚类 873.5其他常用模块 893.6本章小结 903.7思考与练习 91第2篇 数据分析篇第4章数据的预处理4.1数据获取 944.1.1 爬虫概述 944.1.2 爬虫常用库和框架 954.1.3 数据获取实践 1004.2文件与数据存储 1044.2.1 概述 1044.2.2 CSV文件 1054.2.3 JSON文件 1074.2.4 XLSL文件 1084.2.5 SQL数据库文件 1104.3数据清洗 1114.3.1 编码 1124.3.2 缺失值的检测与处理 1134.3.3 去除异常值 1164.3.4 去除重复值和冗余信息 1184.4本章小结 1204.5思考与练习 120第5章数据的分析方法5.1分布分析 1235.1.1 分布分析的概念 1235.1.2 分布分析的实现 1235.2对比分析 1285.2.1 对比分析的概念 1285.2.2 对比分析的比较标准 1295.2.3 对比分析的实现 1315.3统计量分析 1335.3.1 统计量分析的概念 1335.3.2 统计量分析的实现 1335.4相关性分析 1375.4.1 相关性分析的概念 1375.4.2 相关性分析的作用 1385.4.3 相关性分析的实现 1385.5帕累托分析 1415.5.1 帕累托分析的概念 1415.5.2 帕累托分析的实现 1425.6正态分布分析 1435.6.1 正态分布分析的概念 1445.6.2 正态分布分析的实现 1445.7本章小结 1505.8思考与练习 150第6章数据可视化工具的应用6.1数据可视化工具——Matplotlib 1536.1.1 安装Matplotlib模块 1536.1.2 绘制基础图形 1546.1.3 图形的设置 1636.1.4 绘制多个子图 1686.2数据可视化工具——Seaborn 1696.2.1 Seaborn库简介 1706.2.2 Seaborn常用统计图 1706.3本章小结 1736.4思考与练习 173第3篇 数据挖掘篇第7章数据挖掘之线性回归7.1线性回归概述 1777.2一元线性回归 1777.2.1 一元线性回归原理分析 1787.2.2 一元线性回归代码实现 1787.2.3 线性回归方法总结 1837.3多元线性回归 1837.3.1 多元线性回归原理分析 1837.3.2 多元线性回归代码实现 1847.4线性回归模型的评估与检验 1877.4.1 拟合优度检验(R2评估) 1877.4.2 显著性检验(F检验) 1887.4.3 回归参数显著性检验(T检验) 1947.5本章小结 1967.6思考与练习 196第8章数据挖掘之分类模型8.1逻辑回归模型 1998.1.1 逻辑回归模型的原理 1998.1.2 分类模型评估 2008.1.3 逻辑回归模型实现二分类 2068.2决策树和随机森林算法 2108.2.1 决策树的工作原理 2108.2.2 特征选择 2118.2.3 决策树的生成 2138.2.4 决策树的剪枝 2178.2.5 随机森林算法 2238.3KNN算法 2258.3.1 KNN算法的思想 2258.3.2 相似性的度量方法 2258.3.3 KNN算法的性能 2268.3.4 KNN算法的实现 2278.4本章小结 2308.5思考与练习 231第9章数据挖掘之关联分析9.1关联分析概述 2359.1.1 关联分析的基本概念 2359.1.2 常见的关联分析算法 2369.2Apriori关联分析算法 2379.2.1 Apriori算法原理 2379.2.2 Apriori算法挖掘频繁项集 2389.2.3 从频繁项集中挖掘关联规则 2389.2.4 基于Python实现Apriori算法 2399.2.5 Apriori算法总结 2439.3FP-growth关联分析算法 2449.3.1 构建FP树 2449.3.2 从一棵FP树中挖掘频繁项集 2469.3.3 FP-growth算法实例 2489.3.4 FP-growth算法总结 2529.4本章小结 2539.5思考与练习 253第10章数据挖掘之聚类分析10.1聚类分析概述 25510.1.1 聚类分析的概念 25510.1.2 聚类分析的方法 25510.1.3 聚类结果性能评估指标 25610.2质心聚类——K-Means算法 25710.2.1 K-Means算法的原理 25710.2.2 Python实现K-Means算法 26010.3密度聚类——DBSCAN算法 26310.3.1 DBSCAN算法的原理 26310.3.2 Python实现DBSCAN算法 26510.4层次聚类——AGNES算法 26710.4.1 AGNES算法的原理 26810.4.2 Python实现AGNES算法 26810.5本章小结 27010.6思考与练习 270第4篇 实战应用篇第11章实战案例:房价评估数据分析与挖掘11.1加载数据集 27411.2数据分析 27411.3数据可视化 27511.4数据预处理 27711.5拆分数据集 27911.6建立线性回归模型 28211.7建立决策树模型 29111.8对比分析构建的线性回归和决策树模型 29411.9本章小结 296第12章实战案例:电信客户流失数据分析与挖掘12.1案例背景 29812.2加载数据 29812.3数据准备 30012.4数据清洗 30112.4.1 缺失值处理 30112.4.2 重复值处理 30112.4.3 数值类型转换 30112.5数据处理 30412.6数据可视化 30512.7特征工程 31312.8数据建模 31812.9训练模型 31812.10 模型的评估 31912.11 本章小结 320
为什么要写这本书?数据科学正在重塑全球经济,重新定义我们的生活和工作方式,并从多个方面为产业赋能。例如,在新冠肺炎疫情时期,数据为卫生部门的紧急响应提供了有力支撑;在公司运营方面,数据辅助管理层制定决策;在个人生活方面,上网浏览记录有助于网站为用户推荐更感兴趣的内容。因此,数据分析师和数据科学家在各行各业中都备受青睐。对于初学者来说,Python是一门非常优秀的编程语言。首先,与其他编程语言相比,Python的语法相对简单,代码的可读性很高,这极大地方便了初学者的学习。其次,Python在数据分析、探索性计算、数据可视化等领域中拥有非常成熟的库和活跃的社区支持,这使得Python成为数据处理领域的重要解决方案。最后,Python的强大不仅体现在数据分析与挖掘方面,而且在网络爬虫、Web开发等领域中也有着广泛的应用,它更是人工智能时代的通用语言。对于公司来说,使用Python作为主要的开发语言,有助于简化技术栈,提高开发效率,甚至有可能使用一门语言就完成全部业务。笔者阅读过很多数据分析与挖掘的书籍,发现这些书籍中往往以概念和理论为主,其中大量统计学和机器学习的公式对于初学者来说可能较难理解和应用,而具体的实例和实现细节则相对较少。对于初学者来说,仅学习理论是远远不够的,只有将理论与实践相结合,才能更深入地理解和掌握数据分析与挖掘。此外,笔者自从多年前接触Python语言后,便对其产生了浓厚的兴趣,并坚信Python在未来将拥有广阔的发展前景。基于以上原因,笔者希望能够将自己对数据科学的理解、对Python语言的热爱及实践经验,分享给广大读者,从而吸引和帮助更多的人加入数据科学这个行业中来。本书特色本书结合了笔者多年的一线教学经验和项目实战积累,从实例出发讲解每个知识点,让读者清楚每个知识点的真实使用场景。本书的最大特点就是代码实践,旨在使读者对数据分析与挖掘原理的理解达到代码级。全书共12章,从Python语言的基础讲起,再到数据分析方法和数据挖掘建模,最后讲解了两个典型的数据分析与挖掘案例。本书有两条线,一条明线是数据分析与挖掘实战,还有一条暗线是Python语言从入门到项目实战。书中最后两个实战应用案例各自都是一个完整的Python项目,读者不仅能学习数据分析与挖掘,还能掌握Python语言的应用能力。本书具有以下特点。(1)理论与实践相结合,每个理论都有对应的实践代码讲解,读者参考源代码,完成实例,就可以看到实例效果。(2)除最后两章外,每章末尾都配备相应的思考与练习题,方便读者阅读后巩固知识点,举一反三,学以致用,加深印象。(3)本书最后两章的完整案例,可以帮助读者针对特定场景快速设计数据分析与挖掘的方案。(4)本书偏向零基础的读者,会简单操作计算机就可以阅读本书。如果读者具备编程基础和统计学知识,阅读起来会更加顺畅。写给读者的学习建议在阅读本书时,如果读者是零基础,建议从第1篇Python语言基础开始学起。如果读者已经具备Python语言基础,可以跳过第1篇,直接从第2篇开始学习。因为数据分析与挖掘的很多原理都需要通过Python语言加以实践,如果不懂Python语言的语法,学习起来就会困难重重,很多时候还要去关注语法本身,这样就达不到事半功倍的效果。Python数据分析与挖掘的难度并不高,读者只要掌握了数据分析工具的使用、常用的数据挖掘模型、一定的数据处理与分析思想,就可以得到自己想要的结果。但是,内容看懂了与实验做出来不是一回事,只有实实在在地操作,才能了解所有的细节,并深刻体会数据模型的原理及容易被忽略的一些细节问题。因此,强烈建议读者在阅读的同时,动手实践相关实验,这样才能把知识掌握牢固,打下良好的基础。配套资源下载说明本书为读者提供了以下配套学习资源。(1)书中所有案例的源代码,方便读者参考学习、优化修改和分析使用。(2)重点知识及相关案例的视频教程。读者可以在看书学习的同时,参考对应的视频教程,学习效果更佳。(3)PPT课件,方便教师教学使用。备注:以上资源已上传到百度网盘,供读者下载。请读者关注封底“博雅读书社”微信公众号,输入图书77页的资源下载码,获取下载地址及密码。本书是由具有丰富的教学实践经验与项目工作经验的熊熙老师、张雪莲老师策划并统筹编写。参与书稿内容创作的还有马腾、蒋雯静、徐孟奇、王靖、韩昆等研究生,在此对他们的辛勤付出表示感谢。另外,由于计算机技术发展较快及作者水平有限,书中疏漏和不足之处在所难免,恳请广大读者指正。
(1)理论讲解与实践结合。每个理论都有对应的实践代码讲解,读者参考源代码,完成实例,就可以看到实验效果。(2)知识教学与课后练习。大部分章节末尾都配备思考与练习题,旨在帮助读者巩固所学知识,并达到学以致用的目的。(3)综合实战,学以致用。通过最后两章完整案例的学习,可以帮助读者针对特定场景快速设计数据分析与挖掘的方案。(4)配套资源,轻松学会。赠送书中同步实例的相关源代码文件+重点知识的教学视频+制作精美的PPT课件。
熊熙 ---------------------------- 熊熙,博士,成都信息工程大学网络空间安全学院副教授,硕士研究生导师,成都电子行业新经济产业专家,CCF会员,CCF计算机应用专委会执行委员。曾在大唐移动通信设备有限公司担任高级软件工程师,研究方向包括数据挖掘与分析、自然语言处理与知识图谱、信息抽取与推荐算法、工业互联网等。主持和主研guojia级和省部级以上项目8项。张雪莲 ---------------------------- 张雪莲,硕士,四川大学锦江学院讲师,大学计算机基础教研室主任助理,CCF会员。多年来一直从事软件工程相关课程的教学工作,具有丰富的实践教学经验。
笔者根据自己多年的数据分析与挖掘经验,从零基础读者的角度,详尽地介绍了Python数据分析与挖掘的基础知识及大量的实战案例。全书分为4篇,第1篇是基础入门篇,主要介绍数据分析与挖掘的基本概念及Python语言的数据分析基础;第2篇是数据分析篇,主要介绍常用的数据分析方法;第3篇是数据挖掘篇,主要介绍常用的数据挖掘方法;第4篇是实战应用篇,介绍两个完整的数据分析与挖掘案例,让读者了解如何系统地应用前面学到的各种方法解决实际问题。对于书中的大部分章节,笔者还结合实际工作及面试经验,精心配备了大量高质量的练习题,供读者边学边练,以便更好地掌握本书内容。本书配备所有案例的源码,适合有一定数学基础的读者使用,但不要求读者具备编程基础,适合刚入行的数据分析人员或从事与数据相关工作、对数据感兴趣的人员,也适合从事其他岗位但想掌握一定的数据分析能力的职场人员,还可以作为大中专院校相关专业的教学参考用书。