描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302509875
产品特色
编辑推荐
为满足用人单位对数据分析和挖掘人员在编程方面的技能要求,本书遵循由浅入深的原则,详细地介绍了利用Python及其相关工具实现数据分析和挖掘的实用技能。结合Python中成熟的Numpy、Pandas、MatPlotLib、Sklearn、Seaborn、Statsmodels和SciPy模块,实现数据分析与挖掘中关于数据的清洗、整理、探索、可视化、建模和评估等流程的操作,让每一位对数据分析或挖掘的从业者或感兴趣的读者都能从中学到所需的内容。十大常用数据挖掘算法及实战案例,如多元线性回归的预测模型、决策树分类模型、SVM分类模型、GBDT分类模型、K均值聚类模型等,基本覆盖用人单位对常用挖掘算法的需求。
内容简介
本书以Python 3版本作为数据分析与挖掘实战的应用工具,从Pyhton的基础语法开始,陆续介绍有关数值计算的Numpy、数据处理的Pandas、数据可视化的Matplotlib和数据挖掘的Sklearn等内容。全书共涵盖15种可视化图形以及10个常用的数据挖掘算法和实战项目,通过本书的学习,读者可以掌握数据分析与挖掘的理论知识和实战技能。本书适于统计学、数学、经济学、金融学、管理学以及相关理工科专业的本科生、研究生使用,也能够提高从事数据咨询、研究或分析等人士的专业水平和技能。
目 录
目 录第1章 数据分析与挖掘概述 11.1 什么是数据分析和挖掘 11.2 数据分析与挖掘的应用领域 21.2.1 电商领域——发现破坏规则的“害群之马” 21.2.2 交通出行领域——为打车平台进行私人订制 31.2.3 医疗健康领域——找到医疗方案 31.3 数据分析与挖掘的区别 41.4 数据挖掘的流程 51.4.1 明确目标 51.4.2 数据搜集 61.4.3 数据清洗 61.4.4 构建模型 71.4.5 模型评估 71.4.6 应用部署 81.5 常用的数据分析与挖掘工具 81.6 本章小结 9第2章 从收入的预测分析开始 102.1 下载与安装Anoconda 102.1.1 基于Windows系统安装 112.1.2 基于Mac系统安装 122.1.3 基于Linux系统安装 142.2 基于Python的案例实战 142.2.1 数据的预处理 142.2.2 数据的探索性分析 162.2.3 数据建模 192.3 本章小结 28第3章 Python快速入门 293.1 数据结构及方法 293.1.1 列表 293.1.2 元组 343.1.3 字典 353.2 控制流 383.2.1 if分支 383.2.2 for循环 393.2.3 while循环 413.3 字符串处理方法 433.3.1 字符串的常用方法 433.3.2 正则表达式 453.4 自定义函数 473.4.1 自定义函数语法 473.4.2 自定义函数的几种参数 493.5 一个爬虫案例 523.6 本章小结 54第4章 Python数值计算工具——Numpy 564.1 数组的创建与操作 564.1.1 数组的创建 564.1.2 数组元素的获取 574.1.3 数组的常用属性 584.1.4 数组的形状处理 594.2 数组的基本运算符 624.2.1 四则运算 624.2.2 比较运算 634.2.3 广播运算 654.3 常用的数学和统计函数 664.4 线性代数的相关计算 674.4.1 矩阵乘法 684.4.2 diag函数的使用 694.4.3 特征根与特征向量 694.4.4 多元线性回归模型的解 704.4.5 多元一次方程组的求解 704.4.6 范数的计算 714.5 伪随机数的生成 714.6 本章小结 74第5章 Python数据处理工具——Pandas 765.1 序列与数据框的构造 765.1.1 构造序列 775.1.2 构造数据框 785.2 外部数据的读取 795.2.1 文本文件的读取 795.2.2 电子表格的读取 815.2.3 数据库数据的读取 835.3 数据类型转换及描述统计 855.4 字符与日期数据的处理 895.5 常用的数据清洗方法 935.5.1 重复观测处理 935.5.2 缺失值处理 945.5.3 异常值处理 975.6 数据子集的获取 995.7 透视表功能 1015.8 表之间的合并与连接 1045.9 分组聚合操作 1075.10 本章小结 108第6章 Python数据可视化 1106.1 离散型变量的可视化 1106.1.1 饼图 1106.1.2 条形图 1156.2 数值型变量的可视化 1256.2.1 直方图与核密度曲线 1256.2.2 箱线图 1296.2.3 小提琴图 1336.2.4 折线图 1356.3 关系型数据的可视化 1396.3.1 散点图 1396.3.2 气泡图 1426.3.3 热力图 1446.4 多个图形的合并 1466.5 本章小结 148第7章 线性回归预测模型 1507.1 一元线性回归模型 1507.2 多元线性回归模型 1537.2.1 回归模型的参数求解 1547.2.2 回归模型的预测 1557.3 回归模型的假设检验 1577.3.1 模型的显著性检验——F检验 1587.3.2 回归系数的显著性检验——t检验 1607.4 回归模型的诊断 1627.4.1 正态性检验 1627.4.2 多重共线性检验 1647.4.3 线性相关性检验 1657.4.4 异常值检验 1677.4.5 独立性检验 1707.4.6 方差齐性检验 1707.5 本章小结 173第8章 岭回归与LASSO回归模型 1748.1 岭回归模型 1748.1.1 参数求解 1758.1.2 系数求解的几何意义 1768.2 岭回归模型的应用 1778.2.1 可视化方法确定?值 1778.2.2 交叉验证法确定?值 1798.2.3 模型的预测 1808.3 LASSO回归模型 1828.3.1 参数求解 1828.3.2 系数求解的几何意义 1838.4 LASSO回归模型的应用 1848.4.1 可视化方法确定?值 1848.4.2 交叉验证法确定?值 1868.4.3 模型的预测 1878.5 本章小结 189第9章 Logistic回归分类模型 1909.1 Logistic模型的构建 1919.1.1 Logistic模型的参数求解 1939.1.2 Logistic模型的参数解释 1959.2 分类模型的评估方法 1959.2.1 混淆矩阵 1969.2.2 ROC曲线 1979.2.3 K-S曲线 1989.3 Logistic回归模型的应用 2009.3.1 模型的构建 2009.3.2 模型的预测 2029.3.3 模型的评估 2039.4 本章小结 207第10章 决策树与随机森林 20810.1 节点字段的选择 20910.1.1 信息增益 21010.1.2 信息增益率 21210.1.3 基尼指数 21310.2 决策树的剪枝 21610.2.1 误差降低剪枝法 21710.2.2 悲观剪枝法 21710.2.3 代价复杂度剪枝法 21910.3 随机森林 22010.4 决策树与随机森林的应用 22210.4.1 分类问题的解决 22210.4.2 预测问题的解决 22910.5 本章小结 231
第11章 KNN模型的应用 23311.1 KNN算法的思想 23311.2 k值的选择 23411.3 相似度的度量方法 23511.3.1 欧式距离 23511.3.2 曼哈顿距离 23611.3.3 余弦相似度 23611.3.4 杰卡德相似系数 23711.4 近邻样本的搜寻方法 23811.4.1 KD树搜寻法 23811.4.2 球树搜寻法 24211.5 KNN模型的应用 24411.5.1 分类问题的解决 24511.5.2 预测问题的解决 24811.6 本章小结 251第12章 朴素贝叶斯模型 25312.1 朴素贝叶斯理论基础 25312.2 几种贝叶斯模型 25512.2.1 高斯贝叶斯分类器 25512.2.2 高斯贝叶斯分类器的应用 25712.2.3 多项式贝叶斯分类器 25912.2.4 多项式贝叶斯分类器的应用 26112.2.5 伯努利贝叶斯分类器 26412.2.6 伯努利贝叶斯分类器的应用 26612.3 本章小结 271第13章 SVM模型的应用 27213.1 SVM简介 27313.1.1 距离公式的介绍 27313.1.2 SVM的实现思想 27413.2 几种常见的SVM模型 27613.2.1 线性可分的SVM 27613.2.2 一个手动计算的案例 27913.2.3 近似线性可分SVM 28113.2.4 非线性可分SVM 28413.2.5 几种常用的SVM核函数 28513.2.6 SVM的回归预测 28713.3 分类问题的解决 28913.4 预测问题的解决 29113.5 本章小结 294
第14章 GBDT模型的应用 29614.1 提升树算法 29714.1.1 AdaBoost算法的损失函数 29714.1.2 AdaBoost算法的操作步骤 29914.1.3 AdaBoost算法的简单例子 30014.1.4 AdaBoost算法的应用 30214.2 梯度提升树算法 30814.2.1 GBDT算法的操作步骤 30814.2.2 GBDT分类算法 30914.2.3 GBDT回归算法 30914.2.4 GBDT算法的应用 31014.3 非平衡数据的处理 31314.4 XGBoost算法 31514.4.1 XGBoost算法的损失函数 31514.4.2 损失函数的演变 31714.4.3 XGBoost算法的应用 31914.5 本章小结 324第15章 Kmeans聚类分析 32615.1 Kmeans聚类 32715.1.1 Kmeans的思想 32715.1.2 Kmeans的原理 32815.2 k值的确定 32915.2.1 拐点法 32915.2.2 轮廓系数法 33215.2.3 间隔统计量法 33315.3 Kmeans聚类的应用 33615.3.1 iris数据集的聚类 33615.3.2 NBA球员数据集的聚类 33915.4 Kmeans聚类的注意事项 34315.5 本章小结 343第16章 DBSCAN与层次聚类分析 34516.1 密度聚类简介 34516.1.1 密度聚类相关的概念 34616.1.2 密度聚类的步骤 34716.2 密度聚类与Kmeans的比较 34916.3 层次聚类 35316.3.1 簇间的距离度量 35416.3.2 层次聚类的步骤 35616.3.3 三种层次聚类的比较 35716.4 密度聚类与层次聚类的应用 35916.5 本章小结 365
第11章 KNN模型的应用 23311.1 KNN算法的思想 23311.2 k值的选择 23411.3 相似度的度量方法 23511.3.1 欧式距离 23511.3.2 曼哈顿距离 23611.3.3 余弦相似度 23611.3.4 杰卡德相似系数 23711.4 近邻样本的搜寻方法 23811.4.1 KD树搜寻法 23811.4.2 球树搜寻法 24211.5 KNN模型的应用 24411.5.1 分类问题的解决 24511.5.2 预测问题的解决 24811.6 本章小结 251第12章 朴素贝叶斯模型 25312.1 朴素贝叶斯理论基础 25312.2 几种贝叶斯模型 25512.2.1 高斯贝叶斯分类器 25512.2.2 高斯贝叶斯分类器的应用 25712.2.3 多项式贝叶斯分类器 25912.2.4 多项式贝叶斯分类器的应用 26112.2.5 伯努利贝叶斯分类器 26412.2.6 伯努利贝叶斯分类器的应用 26612.3 本章小结 271第13章 SVM模型的应用 27213.1 SVM简介 27313.1.1 距离公式的介绍 27313.1.2 SVM的实现思想 27413.2 几种常见的SVM模型 27613.2.1 线性可分的SVM 27613.2.2 一个手动计算的案例 27913.2.3 近似线性可分SVM 28113.2.4 非线性可分SVM 28413.2.5 几种常用的SVM核函数 28513.2.6 SVM的回归预测 28713.3 分类问题的解决 28913.4 预测问题的解决 29113.5 本章小结 294
第14章 GBDT模型的应用 29614.1 提升树算法 29714.1.1 AdaBoost算法的损失函数 29714.1.2 AdaBoost算法的操作步骤 29914.1.3 AdaBoost算法的简单例子 30014.1.4 AdaBoost算法的应用 30214.2 梯度提升树算法 30814.2.1 GBDT算法的操作步骤 30814.2.2 GBDT分类算法 30914.2.3 GBDT回归算法 30914.2.4 GBDT算法的应用 31014.3 非平衡数据的处理 31314.4 XGBoost算法 31514.4.1 XGBoost算法的损失函数 31514.4.2 损失函数的演变 31714.4.3 XGBoost算法的应用 31914.5 本章小结 324第15章 Kmeans聚类分析 32615.1 Kmeans聚类 32715.1.1 Kmeans的思想 32715.1.2 Kmeans的原理 32815.2 k值的确定 32915.2.1 拐点法 32915.2.2 轮廓系数法 33215.2.3 间隔统计量法 33315.3 Kmeans聚类的应用 33615.3.1 iris数据集的聚类 33615.3.2 NBA球员数据集的聚类 33915.4 Kmeans聚类的注意事项 34315.5 本章小结 343第16章 DBSCAN与层次聚类分析 34516.1 密度聚类简介 34516.1.1 密度聚类相关的概念 34616.1.2 密度聚类的步骤 34716.2 密度聚类与Kmeans的比较 34916.3 层次聚类 35316.3.1 簇间的距离度量 35416.3.2 层次聚类的步骤 35616.3.3 三种层次聚类的比较 35716.4 密度聚类与层次聚类的应用 35916.5 本章小结 365
前 言
前 言为什么写这本书随着大数据时代的演进,越来越多的企业在搜集数据的同时,也开始关注并重视数据分析与挖掘的价值,因为他们正尝到这项技术所带来的甜头。例如,通过该技术可以帮助企业很好地认识其用户的画像特征,为用户提供个性化的优质服务,进而使用户的忠诚度不断提升;通过该技术提前识别出不利于企业健康发展的“毒瘤”用户(如黄牛群体、欺诈群体等),进而降低企业不必要的损失;通过该技术可以为企业实现某些核心指标的判断和预测,进而为企业高层的决策提供参考依据等。企业对数据分析与挖掘技术的重视就意味着对人才的重视,这就要求希望或正在从事数据相关岗位的人员具备该技术的理论知识和实战能力。Python作为大数据相关岗位的应用利器,具有开源、简洁易读、快速上手、多场景应用以及完善的生态和服务体系等优点,使其在数据分析与挖掘领域中的地位显得尤为突出。基于Python可以对各种常见的脏数据完成清洗、绘制各式各样的统计图形,并实现各种有监督、无监督和半监督的机器学习算法的落地,在数据面前做到游刃有余,所以说Python是数据分析与挖掘工作的不二之选。根据多家招聘网站的统计,几乎所有的数据分析或挖掘岗位都要求应聘者掌握至少一种编程语言,其中就包括Python。纵观国内的图书市场,关于Python的书籍还是非常多的,它们主要偏向于工具本身的用法,如关于Python的语法、参数、异常处理、调用以及开发类实例等。但是基于Python的数据分析与挖掘书籍并不是特别多,关于这方面技术的书籍更多的是基于R语言等工具。本书将通过具体的实例讲解数据的处理和可视化技术,同时也结合数据挖掘的理论知识和项目案例讲解10种常用的挖掘算法。2015年9月,笔者申请了微信公众号,取名为“数据分析1480”,目前已经陆续更新了近200篇文章。一方面是为了将自己所学、所知记录下来,作为自己的知识沉淀;另一方面是希望尽自己的微薄之力,将记录下来的内容分享给更多热爱或从事数据分析与挖掘事业的朋友。但是公众号的内容并没有形成系统的知识框架,在王金柱老师的鼓励和支持下才开始了本书的写作,希望读者能够从中获得所需的知识点。 本书的内容本书一共分为三大部分,系统地介绍数据分析与挖掘过程中所涉及的数据清洗与整理、数据可视化以及数据挖掘的落地。部分(第1~3章)介绍有关数据分析与挖掘的概述以及Python的基础知识,并通过一个有趣的案例引入本书内容的学习。本部分内容可以为初学Python的朋友奠定基础,进而为后续章节的学习做准备。第二部分(第4~6章)涉及numpy模块的数值计算、Pandas模块的数据清洗与整理以及Matplotlib模块的可视化技术。本部分内容可以为数据预处理过程中的清洗、整理以及探索性分析环节提供技术支撑。第三部分(第7~16章)一共包含10种数据挖掘算法的应用,如线性回归、决策树、支持向量机、GBDT等,使用通俗易懂的术语介绍每一个挖掘算法的理论知识,并借助于具体的数据项目完成算法的实战。本部分内容可以提高热爱或从事数据分析相关岗位朋友的水平和技能,也可以作为数据挖掘算法落地的模板。本书每一章都有对应的数据源和完整代码,代码均包含具体的中文注释致谢特别感谢清华大学出版社的王金柱老师,感谢他的热情相邀和宝贵建议,是他促成了本书的完成,同时他专业而高效的审阅也使本书增色不少。感谢参与本书封面设计的王翔老师、责任校对闫秀华老师,以及其他背后默默支持的出版工作者,在他们的努力和付出下,保证了本书的顺利出版。后,感谢我的家人和朋友,尤其是我的妻子许欣女士,是她在我写书期间把家里的一切整理得有条不紊,对我的照顾更是无微不至,才使我能够聚精会神地完成本书全部内容的撰写。
刘顺祥(Sim Liu)2018年8月于上海
评论
还没有评论。