基本信息
- 原书名:Practical Data Analysis Cookbook
- 作者: (美)托马兹·卓巴斯(Tomasz Drabas)
- 译者: 刁寿钧
- 丛书名: 数据分析与决策技术丛书
- 出版社:机械工业出版社
- ISBN:9787111597797
- 上架时间:2018-6-1
- 出版日期:2018 年6月
- 开本:16开
- 版次:1-1
- 所属分类:计算机 > 数据库 > 数据库存储与管理

编辑推荐
本书深入数据分析与建模的世界,使用多种方法、工具及算法,提供了丰富的技巧。
本书第 一部分会讲授一些实战技巧,用于读取、写入、清洗、格式化、探索与理解数据;第二部分由一些较深入的主题组成,比如分类、聚类和预测等。第三部分介绍更高深的主题,从图论到自然语言处理,到离散选择模型,再到模拟。
通过阅读本书,你将学到:
- 使用Pandas与OpenRefine读取、清洗、转换与存储数据
- 使用Pandas与D3.js理解数据,探索变量间的关系
- 使用Pandas、mlpy、NumPy与Statsmodels,应用多种技法,分类、聚类银行的营销电话
- 使用Pandas、NumPy与mlpy减少数据集的维度,提取重要的特征
- 使用NetworkX和Gephi探索社交网络的交互,用图论的概念识别出欺诈行为
- 通过加油站的例子,学习代理人基建模的模拟技术
内容简介
作译者
2003年,Tomasz获得战略管理的硕士学位后,从位于波兰华沙的LOT波兰航空公司开启了他的职业生涯。2007年,他前往悉尼,在新南威尔士大学航空学院攻读运筹学博士学位;他的研究结合了离散选择模型和航空作业。在悉尼的日子里,他曾担任过Beyond Analysis Australia公司的数据分析师,沃达丰和记澳大利亚公司的高级数据分析师/数据科学家,以及其他职位。他也发表过学术论文,参加过国际会议,并且担任过学术期刊的审稿人。
2015年,他搬到西雅图,开始在微软工作。在这里他致力于解决高维特征空间的问题。
目录
译者序
前言
致谢
关于作者
关于审稿人
第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
译者序
但是,幸好摆在你面前的是一本技术书。而且是工具性质的技术书。这就好办了。不用担心译序的罅隙泄露了情节。而我毕竟译完了全书,对本书内容算是比较熟悉,也有义务介绍一下这本书,希望对你的使用有些助益。
本书大体上分三部分。第一部分是数据的基本处理,这部分内容读者可能最熟悉,用到的频率可能也最高;第二部分可以看成大学里人工智能概论课的补充材料,包括分类、聚类、降维、时间序列等主题;第三部分就是一些更深入的课题了,比如自然语言处理。
作为工具类技术书,本书讲的都是具体的实战技巧,非常实用。读者可以根据实际需要,挑选特定的主题阅读。不过我还是建议大家完整地读一遍。作者很贴心,大部分知识点都给出了可以深入了解的参考资料。不妨通过阅读本书,拓宽一下技术视野。
最近两年,DeepMind公司不停地刷头条。2016年年初AlphaGo战胜了李世石,之后又有Master缔造了连胜神迹,AlphaGo Zero战胜了Master。近期推出的AlphaZero,经过很短时间的训练,就超越了最强的国际象棋软件、最强的将棋软件,以及最强的围棋软件—之前的AlphaGo Zero。围棋界和技术界都在向阿老师及其缔造者学习。AI与数据科学也变得更加广为人知。毕竟我们不仅要靠个人奋斗,还要考虑历史进程。
不过不管行业风口如何变幻,希望我们都能立足技术,从实际业务出发,潜心学习。老子说千里之行始于足下,庄子也讲庖丁解牛丈人承蜩。我们不是一个简简单单写代码的人,我们是程序员,是要做数据科学家的。与大家共勉。
本书得以出版,首先要感谢机械工业出版社的王春华老师与张志铭老师,是他们的建议使我开始本书的翻译,也感谢他们在翻译过程中对我的信任、宽容与帮助;感谢姜承尧老师、余晟老师在技术和专业翻译方面给我的指导,让我获益良多;感谢陈文备、杨天宇、束文奂、康墨、胡林军和刘祯,他们参与了全书译稿的审校;还要感谢我的好妻子翁联吉,感谢她对我的理解与支持。
如果你对本书内容有任何疑问,欢迎与我联系。电子邮件地址:shoujun.diao@gmail.com。GitHub账号:diaosj。祝各位阅读愉快。
刁寿钧
前言
数据科学家的工作内容包括但远不限于清理数据、转换数据和分析数据,为客户提供业务洞察力,监控公司服务的健康情况,并且自动呈现推荐以促成交叉销售。
在本书中,你将学到如何读取、写入、清理和转换数据—这些工作最为耗时,但也最为关键。接着,会提供相当广泛的工具与技巧—可以说是数据科学家行走江湖的必备技能—内容涉及分类、聚类与回归,图论与时间序列分析,以及离散选择模型与模拟。每一章会给出一系列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。我们也会提供详细的安装指导。
目标读者
序言
程序员、科学家、工程师之间有什么差别?
这个问题,我问过许多“软件工程师”,大家似乎都没法说得特别清楚,常见的答案是从名字上来区分:程序员只关心代码,工程师负责的是系统,科学家的理论知识非常深厚。它的潜台词是:你看,我是个工程师,我不只关心代码,我还为系统负责,但是,你没法对我的理论知识做太多要求。
看来,实际情况也确实如此。前些年,我在一支颇有效率的开发团队里,组织大家“补习”数据结构和算法。我惊奇地发现,不少主力开发人员做起业务功能来异常拿手,毫不畏惧,但面对简单的“理论问题”—比如如何从一个数组中找到和最大的两个元素—竟然束手无策。而且很多人都认为,这不是问题。
我想,这就是很大的问题。
“工程”这回事,是什么时候出现,并让大家意识到它不等于“手艺”的呢?具体时间或者不可考,但有个故事很能说明问题。
1742年,教皇本尼迪克特十四世(Benedict XIV)需要派人诊断罗马圣彼得大教堂拱顶出现的裂纹。传统上,这种事情总是要找建造经验最丰富的工匠。但是这次不一样,教皇把任务指派给了三位数学家,其中一位还曾编辑和注释过艾萨克·牛顿的《自然哲学的数学原理》。在那个年代,他们的诊断方法和结论都引发了巨大的争议,因为其违背了无数工匠的经验和直觉。按照三位数学家的结论,拱顶的箍环承受不了水平的推力,必须新增三个带链条和铁钉的铁环,才能确保建筑的完整。
他们的建议被采纳了。今天,如果你去罗马,仍然可以看到完整的圣彼得大教堂。
土木工程师兼历史学家斯特劳布评论说:这份报告在土木工程史上有划时代的意义……重要性在于,与所有的传统和常规相反,对建筑结构的稳定性的勘测,不是建立在经验规则和静态感觉的基础之上,而是建立在科学的分析和研究之上。
从此大家逐渐相信,建筑不再是一门“手艺”,要想建造更复杂、更伟大的建筑,科学和研究是无论如何离不开的。今天,如果土木工程师在工作时不依照模型、理论、计算,而是完全按照经验和直觉,哪怕他的经验再丰富,也不能称为“工程师”。
在我看来,软件开发,在某种程度上也处于相同的时间点。我承认,之前的大量开发工作,不需要太多理论和科学知识,单纯凭经验和直觉就可以完成。但是如今,我们已经无可避免地被卷入大数据的洪流之中—哪怕是“传统”的互联网开发,也已经大不相同了。我们写的每一个功能,都可能被成千上万人,在成千上万的场景下,成千上万次地使用。在整个过程中,成千上万的埋点、成千上万的传感器,会留下巨细靡遗的数据。如何还原场景、找到问题、做出改进,答案往往就藏在这些数据当中,谁看得懂、玩得转这些数据,谁就能找到答案。
拿简单的“上课前给用户打电话通知”来说,它绝不再是“调用供应商接口发一个语音”那么简单。提前多久给用户打电话反馈最好?什么样的语音信息最容易接受?各地用户有什么特别偏好?不同年龄段的用户接受程度如何?……如果我们承认“用户体验”重要,那么搞清楚这些问题便也很重要。公司搞不清楚,就会被用户嫌弃。工程师搞不清楚,就只能被动接受产品经理的指挥。而这些问题的答案,只能来自对数据的积累和分析。
不要妄想“数据科学家”能帮忙解决这些问题,“数据科学家”太宝贵了,只能用在业务价值最关键的场合。更多的场合,工程师只能挽起袖子自己上场。然而,大部分工程师目前的数据处理能力还局限于极值、算数平均、方差等等少数几项。许多工程师也承认,数据分析能力很重要,也希望学习,可是打开数据分析的专门教材,一看到密集的公式,就已经打了退堂鼓。
怎么办?
我认为,阅读《数据分析实战》是个不错的出路。之所以这么说,有四个原因:第一,这本书的风格是“代码先行”,而且是可以运行的Python代码先行,对于要用到的各种工具包、类库的安装,都有详细的说明,这种风格对于工程师来说,天然有亲切感;第二,例子都是非常实际的,无论是银行电话营销数据分析,还是电网的发电量分析,以及影评文本分析,都很容易和生活经验结合起来,容易理解;第三,非常注重出图,全书用了相当多的篇幅讲述画图,而且是用JavaScript直接出图,图形非常有助于建立直观的认识,JavaScript画图几乎可以保证“人人都可以完成”;第四,译者是工程师出身,在数据分析这个行业有足够丰富的经验,同时也足够谦虚,对于译文的质量来说,这都是很好的保证。
实际上在我看来,普通的技术人员,无论之前做的是什么工作,只要不是极端排斥数据分析,那么阅读这本书,都可以建立对数据分析的准确认知,并且还能真刀真枪地玩上几下:看,数据分析就是这样。一旦掌握了基础的知识和技能,无论把它们当作继续深入学习的基础,还是直接应用到现有工作当中去,都会有巨大的收获。
不要在1742年以后再当一个不懂数学的建筑工匠,不要在大数据时代当一个完全不懂数据分析的工程师。如果认同这个判断,欢迎你把本书当成高性价比的选择。
余晟
媒体评论
—— 姜承尧腾讯支付与金融应用副总监
这本书的风格是“代码先行”,而且是可以运行的Python代码先行,对于要用到各种工具包、类库的安装都有详细的说明,……在我看来,普通的技术人员,无论之前做的是什么工作,只要不是极端排斥数据分析,那么阅读这本书,都可以建立对数据分析的准确认知,并且还能真刀真枪地玩上几下。
—— 余晟《正则指引》作者
通过阅读本书,你将学到:
使用Pandas与OpenRefine读取、清洗、转换与存储数据
使用Pandas与D3.js理解数据,探索变量间的关系
使用Pandas、mlpy、NumPy与Statsmodels,应用多种技巧,分类、聚类银行的营销电话
使用Pandas、NumPy与mlpy减少数据集的维度,提取最重要的特征
使用NetworkX和Gephi探索社交网络的交互,用图论的概念识别出欺诈行为
通过加油站的例子,学习代理人基建模的模拟技术