(特价书)数据科学R语言实践:面向计算推理与问题求解的案例研究法
基本信息
- 作者: (美)德博拉·诺兰(Deborah Nolan) (美)邓肯·坦普·朗(Duncan Temple Lang)
- 译者: 于戈
- 丛书名: 数据科学与工程技术丛书
- 出版社:机械工业出版社
- ISBN:9787111571117
- 上架时间:2018-1-23
- 出版日期:2017 年6月
- 开本:16开
- 版次:1-1
- 所属分类:计算机 > 软件与程序设计 > 综合 > 高级程序语言设计
教材

内容简介
作译者
Duncan Temple Lang(邓肯·坦普·朗)从事R语言和S语言程序开发工作20余年,开发了100多个R程序包。他着重探索和开发新的统计计算方法,主要贡献是调研来自其他学科的有发展前景的新范型和新技术,并将其集成到R环境中。他当前的研究工作包括:基于LLVM方法的R语言编译器、R计算的溯源、类型推导,以及快速、灵活的贝叶斯和似然度计算框架(http://r-nimble.org),还有图形处理器(GPU)。现在担任加州大学戴维斯分校数据科学计划项目的主管。
Nolan和Temple Lang是《XML and Web Technologies for Data Science in R》一书的共同作者。他们组织和领导了多个NSF资助的暑期计划,其目的是吸引大学生学习统计学领域的研究生课题,以及参加数据科学方面的小型研讨会。他们合作开发了“数据计算的概念”这门课程并在各自的学校里讲授。他们协作开发了支持交互式和可复制的动态文档、基于Web可视化等功能的系统。
目录
前言
致谢
作者简介
第一部分 数据操作和建模
第1章 基于室内定位系统的位置预测2
1.1 引言2
1.2 原始数据3
1.3 数据清洗和建立用于分析的数据表示10
1.3.1 对于方向数据的探索12
1.3.2 对于MAC地址数据的探索13
1.3.3 对于手持设备位置数据的探索15
1.3.4 数据准备函数的创建17
1.4 信号强度的分析17
1.4.1 信号强度的分布18
1.4.2 信号与距离之间的关系22
1.5 预测位置的最近邻方法26
1.5.1 测试数据的准备26
1.5.2 方向的选择27
1.5.3 发现最近邻29
译者序
数据科学主要是综合运用计算机技术、数学和统计学理论,并结合实质性的专业知识,开发面向应用领域的数据科学项目。数据科学为大数据分析和应用提供理论基础和方法。在人类社会迈入大数据时代的今天,数据科学显得尤为重要。
正如作者所言,撰写本书的目的是让读者身临其境地体验解决数据分析实际问题的思维过程,也为开设数据科学课程的教师提供丰富而生动的材料。本书的译者目前正在从事数据科学的研究工作,也深深地感到,在应用领域中实践数据科学时,我们并不缺少成熟的统计学理论和方法,也不缺少精巧的计算机算法和工具,我们面临的最大障碍是难以遵循正确的数据科学思维过程,难以把握数据科学项目中所涉及的各种问题及各种可能的答案。为此,本书精选了12个真实的数据分析项目,在一个个具体的案例中说明正确的数据科学思维过程:如何着手处理问题,以及如何考虑采取各种方式实现解决方案。本书注重实战,在各个案例中,首先描绘具体情境,提出初始目标,然后进行代码实现和评测。在此基础上,作者又提出了新的更高层次的目标,并有的放矢地对代码进行修改、精化、扩展和概化,从细节上为读者展示了那些富有经验的数据科学家的日常开发活动。这种渐进式的以问题为引导的内容安排方法,始终使读者目标清晰、兴趣盎然。正因如此,本书虽然内容颇多,但阅读起来轻松愉快!作为译者,我们也感觉翻译此书收获颇丰、受益匪浅。
本书由东北大学计算机科学与工程学院于戈、赵志滨、聂铁铮、申德荣、王大玲、鲍玉斌、张天成、寇月、冯时、冷芳玲、张一飞翻译。其中,前言和第1章由于戈负责,第2章由张天成负责,第3章由王大玲负责,第4章由赵志滨负责,第5章由鲍玉斌负责,第6章由寇月负责,第7章由冷芳玲负责,第8章由张一飞负责,第9章和第11章由聂铁铮负责,第10章由申德荣负责,第12章由冯时负责。全书由于戈、赵志滨、聂铁铮统稿和审校。
本书给出的全部代码由聂铁铮进行了验证性运行,正确无误。
本书涉及数据库、机器学习、可视化技术、统计学等多个领域,12个经典案例有着截然不同的应用背景,尽管译者长期从事数据管理、数据仓库、数据挖掘、机器学习等方面的教学和研究工作,但终究水平有限,尤其是深入到具体应用领域的背景知识难免不足,敬请专家和读者批评指正。
译者
2017年3月
前言
本书目标
有很多种常用于数据分析和数据科学的编程语言。我们在本书中重点使用R语言,但也会使用其他类型的领域专用语言(DSL),甚至还会用到UNIX shell语言和C语言。本书不打算讲授包括R语言在内的任何语言的文法或语义,也不会罗列大量数据科学家常用的R语言程序包和函数。本书的编写是为了使读者能够体验数据分析中真实计算问题的思维过程。有很多书籍讲解程序设计,所采用的方法是用一个章节介绍重要概念,再用其他章节介绍一些示例。这种方式是非常有用的,可以作为学习的基本出发点。但是,本书中作为示例的程序代码是由专家编写的最终精良版本,我们不会专门为读者说明编写代码的实际过程,而是直接给出最终结果代码。我们的目的是要举例说明这样的过程:程序员如何着手处理问题,以及如何考虑采取各种方式实现解决方案。这个过程具有高度的动态性和可重复性。我们首先编写一部分代码,然后测试代码、修改代码、精化代码、扩展代码和概化代码。经常出现的情况是,当从第一次尝试或原型中学到经验后,我们会“从头再来”,重新开发一个更简洁、清晰的版本。在这个过程中,我们需要在简洁性、效率、通用性、可重用性、正确的近似结果等各种要求之间做出折中。我们试图找到的方法是,最小化代码修改,但使得代码执行得更快,也更灵活。本书中,我们想要示范说明这个整体过程,以及成熟的程序员经常会根据丰富的经验做出的那些决定。希望本书能对普通教材做出补充,能为学生、研究者(甚至是教师)简要地展示专业数据科学家如何思考日常计算任务。
案例研究在统计计算课程中的应用
为统计计算(或任何)专业开设一门新的课程,对教师来讲是一项非常耗时的任务。我们常常必须去学习一些新的主题,或起码的基本细节,对它们进行优选和排序,确定哪些主题必须放在课程里,以及按照什么次序排放。我们必须准备大量的作业,以便年复一年地轮换使用。我们还可以布置一些综合性程序设计作业以帮助学生学习,比如矢量化、循环、正则表达式等内容。这些可怕的入门练习对于刚刚接触基本概念的初学者来说是必需的,但这些入门练习不一定要被扩展为大作业或小型项目。我们比较赞成的方法是,在统计计算课程中给学生安排真实的实际数据分析项目,这些项目将新概念紧密结合到常规的数据科学工作流中。我们想为学生揭示数据科学家的日常活动,我们认为学生会对这些内容感兴趣,而且这也有助于他们了解广泛的数据分析应用。进而,我们想要与计算主题一起介绍一些统计方法和概念,这些主题在其他课程中是没有的。基于这些理由,我们的统计计算课程起到了“百宝箱”的作用,囊括数据科学家为了日常工作必须掌握的许多“真实世界”中的主题。
在记住了这些目标后,找到教学上有趣的项目和作业是一项极其有挑战性的任务。要求这些项目和作业能够让学生实际完成并能激发他们的兴趣,还要能够示范专门的主题。在加州大学伯克利分校和戴维斯分校讲授计算课程时,我们花费了数日乃至数周的时间来开发作业,对可能的数据集和数据源产生了许多想法。我们往往需要对4~5个相关问题进行“面试”,然后从中筛选出其一并转化为作业。有些问题虽然有趣,但是过于简单或者过于复杂,因而不得不放弃。在进行完数据处理后,有些问题确实成为有趣的统计问题或数据分析问题,而有些问题则不适宜用来讲解那些我们希望学生关注的与计算和统计相关的主题。我们希望本书及其案例研究在将有趣的问题整合到面向数据科学技能的统计课程和计算课程的过程中,为教师扫清障碍。
在当今数据科学时代,我们拥有众多丰富而有趣的数据集可用于研究和教学。Debby Swayne、Paul Murrell和Hadley Wickham等人组织的Data Expo竞赛就是一个很好的数据来源,可提供各种有趣的、具有挑战性的、可管理的问题。数据仓储(如加州大学欧文分校(UCI)数据仓储)在数量和多样性方面也在不断增长。一些网站(如Kaggle.com)也能提供有趣的问题和数据。本书的关注点与它们稍微有所区别。我们尝试从原始数据开始,鉴别和探索有趣的潜在问题,而不是使用规定好的问题或预处理过的数据。让学生既体验如何获取和处理结构化或半结构化数据,也体验如何限定和构造关于这些数据的有趣问题,我们觉得这些是非常重要的。这个动机源自于我们在工业研究实验室(IBM和贝尔实验室)、暑期学校(如统计学研究中的探索(ESR)暑期学校)以及加州大学伯克利分校和戴维斯分校所进行的教学而积累的经验。
广泛的主题
本书汇集了非传统的作业、样例方案以及练习题。我们专门选择了涉及多种主题、技术和特征的问题,希望学生能够接触和学习如下这些问题,包括:
非标准数据格式(机器人日志,邮件消息);
文本处理和正则表达式;
新兴的或非传统的技术(Web抓取、Web服务、JSON、XML、HTML、KML和Google Earth);
统计学方法(分类树、k-近邻、朴素贝叶斯);
可视化和探索式数据分析;
关系数据库和SQL;
仿真;
算法实现;
大规模数据和处理效率;
软件设计、开发和测试;
使用和连接其他类型的语言,如UNIX shell、C和Python。