描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111597797
编辑推荐
本书深入数据分析与建模的世界,使用多种方法、工具及算法,提供了丰富的技巧。
本书第 一部分会讲授一些实战技巧,用于读取、写入、清洗、格式化、探索与理解数据;第二部分由一些较深入的主题组成,比如分类、聚类和预测等。第三部分介绍更高深的主题,从图论到自然语言处理,到离散选择模型,再到模拟。
通过阅读本书,你将学到:
– 使用Pandas与OpenRefine读取、清洗、转换与存储数据
– 使用Pandas与D3.js理解数据,探索变量间的关系
– 使用Pandas、mlpy、NumPy与Statsmodels,应用多种技法,分类、聚类银行的营销电话
– 使用Pandas、NumPy与mlpy减少数据集的维度,提取重要的特征
– 使用NetworkX和Gephi探索社交网络的交互,用图论的概念识别出欺诈行为
– 通过加油站的例子,学习代理人基建模的模拟技术
本书第 一部分会讲授一些实战技巧,用于读取、写入、清洗、格式化、探索与理解数据;第二部分由一些较深入的主题组成,比如分类、聚类和预测等。第三部分介绍更高深的主题,从图论到自然语言处理,到离散选择模型,再到模拟。
通过阅读本书,你将学到:
– 使用Pandas与OpenRefine读取、清洗、转换与存储数据
– 使用Pandas与D3.js理解数据,探索变量间的关系
– 使用Pandas、mlpy、NumPy与Statsmodels,应用多种技法,分类、聚类银行的营销电话
– 使用Pandas、NumPy与mlpy减少数据集的维度,提取重要的特征
– 使用NetworkX和Gephi探索社交网络的交互,用图论的概念识别出欺诈行为
– 通过加油站的例子,学习代理人基建模的模拟技术
内容简介
本书分为三大部分。第 一部分会讲授一些实战技巧,用于读取、写入、清洗、格式化、探索与理解数据;第二部分由一些较深入的主题组成,比如分类、聚类和预测等;第三部分介绍更高深的主题,从图论到自然语言处理,到离散选择模型,再到模拟。
目 录
Contents 目 录
推荐序
译者序
前言
致谢
关于作者
关于审稿人
第1章 准备数据1
1.1 导论1
1.2 使用Python读写CSV/TSV文件2
1.3 使用Python读写JSON文件6
1.4 使用Python读写Excel文件7
1.5 使用Python读写XML文件10
1.6 使用pandas检索HTML页面13
1.7 存储并检索关系数据库15
1.8 存储并检索MongoDB18
1.9 使用OpenRefine打开并转换数据20
1.10 使用OpenRefine探索数据23
1.11 排重25
1.12 使用正则表达式与GREL清理数据27
1.13 插补缺失值28
1.14 将特征规范化、标准化29
1.15 分级数据30
1.16 编码分类变量32
第2章 探索数据34
2.1 导论34
2.2 生成描述性的统计数据34
2.3 探索特征之间的相关性37
2.4 可视化特征之间的相互作用38
2.5 生成直方图43
2.6 创建多变量的图表46
2.7 数据取样49
2.8 将数据集拆分成训练集、交叉验证集和测试集51
第3章 分类技巧53
3.1 导论53
3.2 测试并比较模型53
3.3 朴素贝叶斯分类器56
3.4 将逻辑回归作为通用分类器使用58
3.5 将支持向量机用作分类引擎61
3.6 使用决策树进行分类65
3.7 使用随机森林预测订阅者69
3.8 使用神经网络对呼叫进行分类72
第4章 聚类技巧79
4.1 导论79
4.2 评估聚类方法的表现79
4.3 用k均值算法聚类数据82
4.4 为k均值算法找到的聚类数84
4.5 使用mean shift聚类模型发现聚类90
4.6 使用c均值构建模糊聚类模型91
4.7 使用层次模型聚类数据93
4.8 使用DBSCAN和BIRCH算法发现潜在的订阅者96
第5章 降维99
5.1 导论99
5.2 创建三维散点图,显示主成分99
5.3 使用核PCA降维102
5.4 用主成分分析找到关键因素105
5.5 使用随机PCA在数据中寻找主成分109
5.6 使用线性判别分析提取有用的维度114
5.7 用kNN分类模型给电话分类时使用多种降维技巧117
第6章 回归模型122
6.1 导论122
6.2 识别并解决数据中的多重共线性124
6.3 构建线性回归模型128
6.4 使用OLS预测生产的电量134
6.5 使用CART估算发电厂生产的电量138
6.6 将kNN模型用于回归问题141
6.7 将随机森林模型用于回归分析143
6.8 使用SVM预测发电厂生产的电量145
6.9 训练神经网络,预测发电厂生产的电量151
第7章 时间序列技术154
7.1 导论154
7.2 在Python中如何处理日期对象155
7.3 理解时间序列数据159
7.4 平滑并转换观测值163
7.5 过滤时间序列数据166
7.6 移除趋势和季节性169
7.7 使用ARMA和ARIMA模型预测未来173
第8章 图181
8.1 导论181
8.2 使用NetworkX在Python中处理图对象182
8.3 使用Gephi将图可视化190
8.4 识别信用卡信息被盗的用户200
8.5 识别谁盗窃了信用卡204
第9章 自然语言处理207
9.1 导论207
9.2 从网络读入原始文本208
9.3 标记化和标准化212
9.4 识别词类,处理n-gram,识别命名实体218
9.5 识别文章主题224
9.6 识别句子结构226
9.7 根据评论给影片归类229
第10章 离散选择模型233
10.1 导论233
10.2 准备数据集以估算离散选择模型235
10.3 估算知名的多项Logit模型239
10.4 测试来自无关选项的独立性冲突244
10.5 用巢式Logit模型处理IIA冲突249
10.6 用混合Logit模型处理复杂的替代模式251
第11章 模拟254
11.1 导论254
11.2 使用SimPy模拟加油站的加油过程255
11.3 模拟电动车耗尽电量的场景264
11.4 判断羊群面对群狼时是否有团灭的风险269
推荐序
译者序
前言
致谢
关于作者
关于审稿人
第1章 准备数据1
1.1 导论1
1.2 使用Python读写CSV/TSV文件2
1.3 使用Python读写JSON文件6
1.4 使用Python读写Excel文件7
1.5 使用Python读写XML文件10
1.6 使用pandas检索HTML页面13
1.7 存储并检索关系数据库15
1.8 存储并检索MongoDB18
1.9 使用OpenRefine打开并转换数据20
1.10 使用OpenRefine探索数据23
1.11 排重25
1.12 使用正则表达式与GREL清理数据27
1.13 插补缺失值28
1.14 将特征规范化、标准化29
1.15 分级数据30
1.16 编码分类变量32
第2章 探索数据34
2.1 导论34
2.2 生成描述性的统计数据34
2.3 探索特征之间的相关性37
2.4 可视化特征之间的相互作用38
2.5 生成直方图43
2.6 创建多变量的图表46
2.7 数据取样49
2.8 将数据集拆分成训练集、交叉验证集和测试集51
第3章 分类技巧53
3.1 导论53
3.2 测试并比较模型53
3.3 朴素贝叶斯分类器56
3.4 将逻辑回归作为通用分类器使用58
3.5 将支持向量机用作分类引擎61
3.6 使用决策树进行分类65
3.7 使用随机森林预测订阅者69
3.8 使用神经网络对呼叫进行分类72
第4章 聚类技巧79
4.1 导论79
4.2 评估聚类方法的表现79
4.3 用k均值算法聚类数据82
4.4 为k均值算法找到的聚类数84
4.5 使用mean shift聚类模型发现聚类90
4.6 使用c均值构建模糊聚类模型91
4.7 使用层次模型聚类数据93
4.8 使用DBSCAN和BIRCH算法发现潜在的订阅者96
第5章 降维99
5.1 导论99
5.2 创建三维散点图,显示主成分99
5.3 使用核PCA降维102
5.4 用主成分分析找到关键因素105
5.5 使用随机PCA在数据中寻找主成分109
5.6 使用线性判别分析提取有用的维度114
5.7 用kNN分类模型给电话分类时使用多种降维技巧117
第6章 回归模型122
6.1 导论122
6.2 识别并解决数据中的多重共线性124
6.3 构建线性回归模型128
6.4 使用OLS预测生产的电量134
6.5 使用CART估算发电厂生产的电量138
6.6 将kNN模型用于回归问题141
6.7 将随机森林模型用于回归分析143
6.8 使用SVM预测发电厂生产的电量145
6.9 训练神经网络,预测发电厂生产的电量151
第7章 时间序列技术154
7.1 导论154
7.2 在Python中如何处理日期对象155
7.3 理解时间序列数据159
7.4 平滑并转换观测值163
7.5 过滤时间序列数据166
7.6 移除趋势和季节性169
7.7 使用ARMA和ARIMA模型预测未来173
第8章 图181
8.1 导论181
8.2 使用NetworkX在Python中处理图对象182
8.3 使用Gephi将图可视化190
8.4 识别信用卡信息被盗的用户200
8.5 识别谁盗窃了信用卡204
第9章 自然语言处理207
9.1 导论207
9.2 从网络读入原始文本208
9.3 标记化和标准化212
9.4 识别词类,处理n-gram,识别命名实体218
9.5 识别文章主题224
9.6 识别句子结构226
9.7 根据评论给影片归类229
第10章 离散选择模型233
10.1 导论233
10.2 准备数据集以估算离散选择模型235
10.3 估算知名的多项Logit模型239
10.4 测试来自无关选项的独立性冲突244
10.5 用巢式Logit模型处理IIA冲突249
10.6 用混合Logit模型处理复杂的替代模式251
第11章 模拟254
11.1 导论254
11.2 使用SimPy模拟加油站的加油过程255
11.3 模拟电动车耗尽电量的场景264
11.4 判断羊群面对群狼时是否有团灭的风险269
前 言
Preface 前 言数据分析与数据科学已经成功引起了各行各业的注意。当下产生的数据总量已让人惊叹,并且这个数据量每天仍在增长;随着手机使用量的激增,人们对Facebook、Youtube、Netflix或其他4K视频提供方的访问将越发地倚重云计算,这是我们可以预见的必然趋势。
数据科学家的工作内容包括但远不限于清理数据、转换数据和分析数据,为客户提供业务洞察力,监控公司服务的健康情况,并且自动呈现推荐以促成交叉销售。
在本书中,你将学到如何读取、写入、清理和转换数据—这些工作为耗时,但也为关键。接着,会提供相当广泛的工具与技巧—可以说是数据科学家行走江湖的技能—内容涉及分类、聚类与回归,图论与时间序列分析,以及离散选择模型与模拟。每一章会给出一系列Python代码示例,帮你演练那些今后作为数据科学家会遇到的任务。
本书内容第1章讲解了利用多种数据格式与数据库来读取与写入数据的过程,以及使用OpenRefine与Python对数据进行清理。
第2章描述了用于理解数据的多种技巧。我们会了解如何计算变量的分布与相关性,并生成多种图表。
第3章介绍了处理分类问题的种种技巧,从朴素贝叶斯分类器到复杂的神经网络和随机树森林。
第4章解释了多种聚类模型;从常见的k均值算法开始,一直到高级的BIRCH算法和DBSCAN算法。
第5章展示了很多降维的技巧,从知名的主成分分析出发,经由其核版本与随机化版本,一直讲到线性判别分析。
第6章涵盖了许多回归模型,有线性的,也有非线性的。我们还会复习随机森林和支持向量机,它们可用来解决分类或回归问题。
第7章探索了如何处理和理解时间序列数据,并建立ARMA模型以及ARIMA模型。
第8章介绍了如何使用NetworkX和Gephi来对图数据进行处理、理解、可视化和分析。
第9章描述了多种与分析文本信息流相关的技巧:词性标注、主题抽取以及对文本数据的分类。
第10章解释了选择模型理论以及一些流行的模型:多项式Logit模型、嵌套Logit模型以及混合Logit模型。
第11章涵盖了代理人基的模拟;我们模拟的场景有:加油站的加油过程,电动车耗尽电量以及狼—羊的掠食。
阅读准备阅读本书,你需要一台个人计算机(Windows、Mac或Linux机器均可),配置好Python 3.5环境;我们使用的是Anaconda版本,可从这里下载:https://www.continuum.io/downloads。
书中使用了多种Python模块:pandas、NumPy/SciPy、Scikit-learn、MLPY、StatsModels、PyBrain、NLTK、BeautifulSoup、Optunity、Matplotlib、Seaborn、Bokeh、PyLab、OpenPyXI、PyMongo、SQLAlchemy、NetworkX和SimPy。大部分已经预装在Anaconda版本中了,也有一些需要通过conda安装器或python setup.py install命令进行安装。如果你机器上缺一些模块,也没有关系,我们会指导你完成安装。
我们也使用了一些Python之外的工具:用于数据清理和分析的OpenRefine,用于可视化数据的D3.js,用于存储数据的Postgres和MongoDB数据库,用于可视化图的Gephi,以及预测离散选择模型的PythonBiogeme。我们也会提供详细的安装指导。
目标读者本书的目标读者是,所有想进入数据科学领域、通过解决业界实战问题来练出一身本领的同学。另外,有经验的从业人员也能从本书高阶主题中的一些示例里找到一些乐趣。
板块这些板块会在本书中频繁出现:“准备”“怎么做”“原理”“更多”以及“参考”。
为了提供完整而清晰的指导,我们将按下面的方式使用这些标题:
准备这部分介绍技巧的目标,并描述相关软件的安装与设定。
怎么做这部分包含技巧的步骤。
原理这部分通常是前一部分的详细解释。
更多这部分会附加一些信息,帮助读者更了解对应技巧。
参考这部分会列出一些有助于了解技巧其他信息的链接。
本书约定表示警告或重要的提示。
表示建议与技巧。
下载示例代码及彩色图像本书的样例源码,以及所有的截图和样图,可以从http://www.packtub.com通过个人账号下载,也可以访问华章图书官网http://www.hzbook.com,通过注册并登录个人账号下载。
致 谢 Acknowledgements首先,我要感谢我的妻子Rachel与女儿Skye;感谢她们鼓励我接受挑战,感谢她们容忍我整日整夜地编程与写作。她们棒了,而我对她们的爱意无边无际!
在学习编程时,Tomasz Bednarz是我的良师益友—感谢你!我也要感谢我的现任与前任经理Mike Stephenson和Rory Carter,以及各位鼓励我完成本书的同事和朋友。
特别感谢我的两位导师Richard Cheng-Lung Wu博士与Tomasz Jablonski博士。与Tomasz合作的项目引发了我对神经网络的兴趣—这是我永远不会忘记的。没有Richard的帮助,我可能都拿不到博士学位,感谢他的帮助、引导和友情。
数据科学家的工作内容包括但远不限于清理数据、转换数据和分析数据,为客户提供业务洞察力,监控公司服务的健康情况,并且自动呈现推荐以促成交叉销售。
在本书中,你将学到如何读取、写入、清理和转换数据—这些工作为耗时,但也为关键。接着,会提供相当广泛的工具与技巧—可以说是数据科学家行走江湖的技能—内容涉及分类、聚类与回归,图论与时间序列分析,以及离散选择模型与模拟。每一章会给出一系列Python代码示例,帮你演练那些今后作为数据科学家会遇到的任务。
本书内容第1章讲解了利用多种数据格式与数据库来读取与写入数据的过程,以及使用OpenRefine与Python对数据进行清理。
第2章描述了用于理解数据的多种技巧。我们会了解如何计算变量的分布与相关性,并生成多种图表。
第3章介绍了处理分类问题的种种技巧,从朴素贝叶斯分类器到复杂的神经网络和随机树森林。
第4章解释了多种聚类模型;从常见的k均值算法开始,一直到高级的BIRCH算法和DBSCAN算法。
第5章展示了很多降维的技巧,从知名的主成分分析出发,经由其核版本与随机化版本,一直讲到线性判别分析。
第6章涵盖了许多回归模型,有线性的,也有非线性的。我们还会复习随机森林和支持向量机,它们可用来解决分类或回归问题。
第7章探索了如何处理和理解时间序列数据,并建立ARMA模型以及ARIMA模型。
第8章介绍了如何使用NetworkX和Gephi来对图数据进行处理、理解、可视化和分析。
第9章描述了多种与分析文本信息流相关的技巧:词性标注、主题抽取以及对文本数据的分类。
第10章解释了选择模型理论以及一些流行的模型:多项式Logit模型、嵌套Logit模型以及混合Logit模型。
第11章涵盖了代理人基的模拟;我们模拟的场景有:加油站的加油过程,电动车耗尽电量以及狼—羊的掠食。
阅读准备阅读本书,你需要一台个人计算机(Windows、Mac或Linux机器均可),配置好Python 3.5环境;我们使用的是Anaconda版本,可从这里下载:https://www.continuum.io/downloads。
书中使用了多种Python模块:pandas、NumPy/SciPy、Scikit-learn、MLPY、StatsModels、PyBrain、NLTK、BeautifulSoup、Optunity、Matplotlib、Seaborn、Bokeh、PyLab、OpenPyXI、PyMongo、SQLAlchemy、NetworkX和SimPy。大部分已经预装在Anaconda版本中了,也有一些需要通过conda安装器或python setup.py install命令进行安装。如果你机器上缺一些模块,也没有关系,我们会指导你完成安装。
我们也使用了一些Python之外的工具:用于数据清理和分析的OpenRefine,用于可视化数据的D3.js,用于存储数据的Postgres和MongoDB数据库,用于可视化图的Gephi,以及预测离散选择模型的PythonBiogeme。我们也会提供详细的安装指导。
目标读者本书的目标读者是,所有想进入数据科学领域、通过解决业界实战问题来练出一身本领的同学。另外,有经验的从业人员也能从本书高阶主题中的一些示例里找到一些乐趣。
板块这些板块会在本书中频繁出现:“准备”“怎么做”“原理”“更多”以及“参考”。
为了提供完整而清晰的指导,我们将按下面的方式使用这些标题:
准备这部分介绍技巧的目标,并描述相关软件的安装与设定。
怎么做这部分包含技巧的步骤。
原理这部分通常是前一部分的详细解释。
更多这部分会附加一些信息,帮助读者更了解对应技巧。
参考这部分会列出一些有助于了解技巧其他信息的链接。
本书约定表示警告或重要的提示。
表示建议与技巧。
下载示例代码及彩色图像本书的样例源码,以及所有的截图和样图,可以从http://www.packtub.com通过个人账号下载,也可以访问华章图书官网http://www.hzbook.com,通过注册并登录个人账号下载。
致 谢 Acknowledgements首先,我要感谢我的妻子Rachel与女儿Skye;感谢她们鼓励我接受挑战,感谢她们容忍我整日整夜地编程与写作。她们棒了,而我对她们的爱意无边无际!
在学习编程时,Tomasz Bednarz是我的良师益友—感谢你!我也要感谢我的现任与前任经理Mike Stephenson和Rory Carter,以及各位鼓励我完成本书的同事和朋友。
特别感谢我的两位导师Richard Cheng-Lung Wu博士与Tomasz Jablonski博士。与Tomasz合作的项目引发了我对神经网络的兴趣—这是我永远不会忘记的。没有Richard的帮助,我可能都拿不到博士学位,感谢他的帮助、引导和友情。
评论
还没有评论。