数据科学R语言实践:面向计算推理与问题求解的案例研究法
作者 : [美] 德博拉?诺兰(Deborah Nolan) 邓肯?坦普?朗(Duncan Temple Lang) 著
译者 : 于戈 赵志滨 聂铁铮 等译
出版日期 : 2017-06-26
ISBN : 978-7-111-57111-7
定价 : 119.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 451
开本 : 16
原书名 : Data Science in R:A Case Studies Approach to Computational Reasoning and Problem Solving
原出版社: Taylor & Francis -CRC Press
属性分类: 教材
包含CD :
绝版 :
图书简介

本书展示了如何解决在数据分析中遇到的计算问题的方法和技术。它揭示了数据分析方法的动态和迭代过程,并分析了采用不同实现方法的原因。

图书特色

在成为数据科学家的道路上,从课堂练习数据迈向海量复杂数据是一道关卡。本书正为攻克这道关卡而作,12个章节即为12个鲜活的实践案例,从原始数据的读取、转换到建模、仿真和可视化,带领读者体验真实项目中计算推理与问题求解的思维过程,学习高手的解决之道,而不拘泥于编程语言的语法细节。

12个精彩案例:
?如何利用室内定位系统进行精准的位置预测?
?面对14年的樱花公路赛比赛数据,怎样建立起高效的模型?
?要想准确识别垃圾邮件,统计学方法有效吗?
?机器人总是错失目标,怎么改进日志文件的处理方法?
?挖掘12GB的航班数据,你能找到航班延误的症结吗?
?如果由你来操作股票的配对交易,怎样实现最大收益?
?分支过程错综复杂时,如何管理作业并提高并行效率?
?仿真具有相变特征的自组织系统是一种怎样的体验?
?如何算出二十一点纸牌游戏的制胜策略?
?在棒球队的工资数据库里,怎样挖掘出有价值的关联信息?
?如何利用网络公开数据和Google地图绘制出炫酷的数据图?
?你想成为一名数据科学家,先来试试挖掘数据科学招聘信息如何?
德博拉?诺兰(Deborah Nolan) 现任加州大学伯克利分校本科教育的Zaffaroni Family主席。她是美国统计学会会士,计算分会和教育分会前任主席,以及美国数理统计研究院会士。

邓肯?坦普?朗(Duncan Temple Lang) 现任加州大学戴维斯分校数据科学计划项目的主管。他从事R语言和S语言程序开发工作20余年,开发了100多个广为应用的R程序包。

图书前言

我们编写本书有两重目的:一是想让学生能够阅读到计算推理方面的内容以及真实世界中数据分析的细节;二是希望提供有趣而且有用的资料,帮助统计学教师为新型的统计学和数据科学专业的学生讲授一门新拓展课程的重要方面。这门强化型课程是为了揭示数据分析和计算推理方法,而不是注重统计方法学。我们的目标不是提供简短的答案和方案,而是探索在数据科学项目中涉及的各种问题、各种可能的方案以及思维过程。
本书目标
有很多种常用于数据分析和数据科学的编程语言。我们在本书中重点使用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。
我们本来希望涵盖更多其他方面的计算主题,例如,现代统计方法和机器学习方法、版本控制、动态文档、并行计算、Hadoop和MapReduce、数据技术、高级文本处理概念,等等,但由于空间和时间的限制,本书中并没有包揽这些内容。
本书包含的案例研究是我们在自己课堂上使用的一部分。它们并不是完美的,欢迎对它们的各种缺陷进行批评。尽管如此,我们希望这些案例研究对于学生和教师来说都是同等有价值的。我们也希望借助于它们能够促进更多的人发布更多的案例研究、问题和数据集等,以帮助学生学习所需要的计算和统计推理技能。
目标读者
由于本书不打算讲解在案例研究中所使用的任何编程语言的基本知识,因此它不是一本可独立使用的教科书。但我们认为它可用作与数据处理有关的所有年级学生的实用大纲,还可用作本科生和一年级研究生的统计计算课程的补充读物。对于那些正在从事数据科学研究的或者新入行的数据科学家,如果还没有正式学过统计计算课程,我们期望这本书对他们有价值。在这些人里面,对于那些寻找导论教材程度之上内容的自学者、本科生、研究生(甚至是教师),我们期望这本书更为有用。此外,对于那些想要对各种数据科学问题中的思维过程及其常规计算细节进行探讨的人来说,我们期望本书中的材料也是很有用的。
三个部分的主题
我们将本书分为三个部分,每个部分对应一个通用主题。虽然它们都注重计算问题,但也注重可视化、数据技术以及平常很少讲授的统计学技术/机器学习技术。
第一部分中的案例研究涵盖如何读取和转换原始数据,如何操作和可视化原始数据,以及如何使用统计技术以设法解决问题或者理解变量之间的关系。数据一般是非标准格式或非标准来源(如Web页面)。这部分使用的统计技术不是很复杂,但也不同于学生在本科课程里所学到的技术。
第二部分的重点是使用仿真方法理解随机过程本身,同时探索如何使用仿真方法对感兴趣的情景进行建模。这些案例研究也探讨一些高级的计算主题,如参考类、高效率的惯用语法和计算方法等。
第三部分中给出的最后一组案例探索了各种数据技术,包括数据库、使用KML进行可视化、使用HTTP请求和文本处理技术、从Web页面上抓取数据等。
将案例研究划分到哪个章节并不是精确和绝对的。例如,某些仿真主题涵盖数据操作,而某些数据操作和建模章节又涵盖仿真。数据技术方面的案例研究包含了许多数据操作。所有的案例研究都包含可视化,这样做既是为了理解和探索数据,也是为了便于程序代码的调试。
本书的关注点是统计计算,以及如何对数据进行存取、转换、操作、探索、可视化和推理。然而,除了这些技术和计算之外,所有的案例研究都是基于统计学、数学和工程等方面的有趣问题,这些问题本身就是值得研究的。在各章节中,我们将计算细节与统计学和数据分析的概念相融合。对数据和结果的分析,我们有意介绍得很简洁,而不是很详尽。我们的目的是使读者对具体的应用感兴趣,并停留或暂停在某个问题点上认真探索。感兴趣的学生可在这个点上针对用于解决问题的数据和统计方法进行大量的探索工作。本书提供了解决问题的计算基础,并留给学生和教师去做进一步的探讨,同时也提供了许多合适的练习题和各种探索方向。
排版格式约定
在几个案例研究中,我们使用了除R语言以外的语言,如SQL和C语言。尽管上下文已经清楚地指出代码块是使用了R之外的语言,但我们还是会在页面的空白处做出说明。例如,UNIX的grep命令显示为:

在编写代码的过程中,我们也介绍错误或差错,作用是让学生学习如何更好地着手处理和解决计算问题。因此,本书中的某些代码会故意写成不正确的或欠缺的(即可以工作但不是好方法)。我们在页边用禁止符号标识这种代码,例如:

注意,在本书中给出的用于创建图表的程序代码略不同于实际用于创建可显示图表的代码。在通常的做法中,使用R创建绘图时会添加标题,要么是为了交互式观看,要么是为了能够包含到幻灯片和报表中。但是,本书没有这样做,因为图形是显示在图表中,而图表已包含了说明文字和标题。为了避免冗余,代码中删除了对绘图标题的定义。
最后一个约定与练习题有关。有的案例研究将练习题分散在一章的不同位置,有的案例研究将所有练习题集中到一章的结尾。为了帮助识别和查找习题,我们在页边靠近练习题的地方加一个问号。例如:
Q.1 写出在一张图上包含两个数据序列的函数,记住要在你的图表上加标题。

上架指导

计算机科学/大数据分析与处理

封底文字

在成为数据科学家的道路上,从课堂练习数据迈向海量复杂数据是一道关卡。本书正为攻克这道关卡而作,12个章节即为12个鲜活的实践案例,从原始数据的读取、转换到建模、仿真和可视化,带领读者体验真实项目中计算推理与问题求解的思维过程,学习高手的解决之道,而不拘泥于编程语言的语法细节。

12个精彩案例:
·如何利用室内定位系统进行精准的位置预测?
·面对14年的樱花公路赛比赛数据,怎样建立起高效的模型?
·要想准确识别垃圾邮件,统计学方法有效吗?
·机器人总是错失目标,怎么改进日志文件的处理方法?
·挖掘12GB的航班数据,你能找到航班延误的症结吗?
·如果由你来操作股票的配对交易,怎样实现最大收益?
·分支过程错综复杂时,如何管理作业并提高并行效率?
·仿真具有相变特征的自组织系统是一种怎样的体验?
·如何算出二十一点纸牌游戏的制胜策略?
·在棒球队的工资数据库里,怎样挖掘出有价值的关联信息?
·如何利用网络公开数据和Google地图绘制出炫酷的数据图?
·你想成为一名数据科学家,先来试试挖掘数据科学招聘信息如何?

作者简介

[美] 德博拉?诺兰(Deborah Nolan) 邓肯?坦普?朗(Duncan Temple Lang) 著:
德博拉·诺兰(Deborah Nolan) 现任加州大学伯克利分校本科教育的Zaffaroni Family主席。她是美国统计学会会士,计算分会和教育分会前任主席,以及美国数理统计研究院会士。

邓肯·坦普·朗(Duncan Temple Lang) 现任加州大学戴维斯分校数据科学计划项目的主管。他从事R语言和S语言程序开发工作20余年,开发了100多个广为应用的R程序包。

译者简介

于戈 赵志滨 聂铁铮 等译:暂无简介

译者序

在过去的短短几年里,随着物联网、Web 2.0等技术的迅猛发展和普及应用,可用的数据量呈爆炸式增长。可以说,在当今社会,找到数据已经不再是难事,如何有效地使用数据、从数据中挖掘出具有实践指导意义的领域知识才是问题的关键。在这样的背景下,数据科学应运而生。
数据科学主要是综合运用计算机技术、数学和统计学理论,并结合实质性的专业知识,开发面向应用领域的数据科学项目。数据科学为大数据分析和应用提供理论基础和方法。在人类社会迈入大数据时代的今天,数据科学显得尤为重要。
正如作者所言,撰写本书的目的是让读者身临其境地体验解决数据分析实际问题的思维过程,也为开设数据科学课程的教师提供丰富而生动的材料。本书的译者目前正在从事数据科学的研究工作,也深深地感到,在应用领域中实践数据科学时,我们并不缺少成熟的统计学理论和方法,也不缺少精巧的计算机算法和工具,我们面临的最大障碍是难以遵循正确的数据科学思维过程,难以把握数据科学项目中所涉及的各种问题及各种可能的答案。为此,本书精选了12个真实的数据分析项目,在一个个具体的案例中说明正确的数据科学思维过程:如何着手处理问题,以及如何考虑采取各种方式实现解决方案。本书注重实战,在各个案例中,首先描绘具体情境,提出初始目标,然后进行代码实现和评测。在此基础上,作者又提出了新的更高层次的目标,并有的放矢地对代码进行修改、精化、扩展和概化,从细节上为读者展示了那些富有经验的数据科学家的日常开发活动。这种渐进式的以问题为引导的内容安排方法,始终使读者目标清晰、兴趣盎然。正因如此,本书虽然内容颇多,但阅读起来轻松愉快!作为译者,我们也感觉翻译此书收获颇丰、受益匪浅。
本书由东北大学计算机科学与工程学院于戈、赵志滨、聂铁铮、申德荣、王大玲、鲍玉斌、张天成、寇月、冯时、冷芳玲、张一飞翻译。其中,前言和第1章由于戈负责,第2章由张天成负责,第3章由王大玲负责,第4章由赵志滨负责,第5章由鲍玉斌负责,第6章由寇月负责,第7章由冷芳玲负责,第8章由张一飞负责,第9章和第11章由聂铁铮负责,第10章由申德荣负责,第12章由冯时负责。全书由于戈、赵志滨、聂铁铮统稿和审校。
本书给出的全部代码由聂铁铮进行了验证性运行,正确无误。
本书涉及数据库、机器学习、可视化技术、统计学等多个领域,12个经典案例有着截然不同的应用背景,尽管译者长期从事数据管理、数据仓库、数据挖掘、机器学习等方面的教学和研究工作,但终究水平有限,尤其是深入到具体应用领域的背景知识难免不足,敬请专家和读者批评指正。

译者
2017年3月

图书目录

译者序
前言
致谢
作者简介
第一部分 数据操作和建模
第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
1.5.4 交叉验证和k的选择31
1.6 练习题34
参考文献36
第2章 樱花公路赛参赛选手比赛时间建模37
2.1 引言37
2.2 将比赛结果表读入R中39
2.3 数据清洗和变量格式化46
2.4 探索所有男选手的跑步时间53
2.4.1 根据大量观察绘制散点图53
2.4.2 对平均成绩构建拟合模型56
2.4.3 横截面数据和协变量63
2.5 为跨年度的个人参赛选手构造记录66
2.6 对个人跑步时间的变化进行建模74
2.7 从网上抓取比赛结果78
2.8 练习题84
参考文献86
第3章 应用统计学方法识别垃圾邮件87
3.1 引言87
3.2 邮件消息解析88
3.3 读取邮件消息91
3.4 文本挖掘和朴素贝叶斯分类94
3.5 在邮件消息中找到单词96
3.5.1 将消息划分成消息头部与消息正文96
3.5.2 从消息正文中移除附件97
3.5.3 从消息正文中抽取单词103
3.5.4 完成数据准备过程105
3.6 实现朴素贝叶斯分类器106
3.6.1 测试数据与训练数据107
3.6.2 训练数据的概率估计108
3.6.3 分类新消息110
3.6.4 计算方面的考虑114
3.7 递归划分与分类树115
3.8 将电子邮件消息组织成R语言数据结构117
3.8.1 处理邮件头部118
3.8.2 处理附件121
3.8.3 在更多的邮件数据上测试代码123
3.8.4 完成处理过程124
3.9 从邮件消息中获取变量126
3.10 探索邮件特征集合133
3.11 使用rpart()模型拟合邮件数据135
3.12 练习题139
参考文献142
第4章 处理机器人和传感器日志文件:寻找圆形目标143
4.1 描述143
4.2 数据144
4.2.1 读取一个完整的日志文件146
4.2.2 探索日志文件150
4.2.3 可视化路径154
4.2.4 探索 “观察”157
4.2.5 范围值的误差分布160
4.3 探测圆形目标162
4.3.1 连接机器人背后的片段166
4.3.2 确定一个片段是否对应于一个圆形168
4.4 实时流数据情况下探测目标180
参考文献182
第5章 针对12GB数据集的分析策略:航班延误案例183
5.1 引言183
5.2 获取航班数据集184
5.3 处理海量数据集:计算航班延误数184
5.3.1 R程序设计环境185
5.3.2 UNIX shell方法186
5.3.3 支持R的SQL数据库188
5.3.4 R的bigmemory程序包191
5.4 使用并行计算进行数据探索:航班延误的分布194
5.4.1 使用foreach编写可并行化的循环194
5.4.2 使用“划分-应用-合并”方法获得更好的性能196
5.4.3 使用“划分-应用-合并”方法发现航班飞行的最佳时间196
5.5 从探索分析到建模:旧飞机会带来较大的延误吗200
参考文献201
第二部分 仿真研究
第6章 股票的配对交易204
6.1 问题提出204
6.2 数据格式208
6.3 金融数据的读取209
6.4 时间序列的可视化211
6.5 查找开仓点和平仓点213
6.5.1 识别仓位213
6.5.2 显示仓位215
6.5.3 查找所有开/平仓216
6.5.4 计算一个仓位的收益218
6.5.5 找到k的最优值220
6.6 仿真研究223
6.6.1 股票价格序列仿真225
6.6.2 提升stockSim()函数的运行速度233
参考文献235
第7章 分支过程的仿真研究236
7.1 引言236
7.2 随机过程探索239
7.3 产生后代241
7.3.1 检查结果244
7.3.2 考虑其他的实现方式245
7.4 性能分析与代码改进245
7.5 从一个作业的后代到全部的后代247
7.6 单元测试248
7.7 函数返回值的结构249
7.8 家族树:分支过程仿真250
7.9 仿真复制254
7.10 练习题260
参考文献261
第8章 具有相变过程的自组织动态系统262
8.1 引言与动机262
8.2 模型263
8.3 实现BML模型265
8.3.1 创建初始网格结构266
8.3.2 测试网格创建函数269
8.3.3 显示网格273
8.3.4 可视化网格273
8.3.5 简单方便的面向对象程序设计276
8.3.6 移动汽车278
8.4 评估代码性能284
8.5 用C实现BML模型295
8.5.1 用C编写算法297
8.5.2 编译、加载和调用C代码303
8.6 运行仿真307
8.7 实验性编译311
参考文献312
第9章 模拟二十一点纸牌游戏313
9.1 引言313
9.2 二十一点游戏基础314
9.3 玩一手二十一点游戏317
9.4 游戏策略321
9.5 玩多手二十一点游戏326
9.6 一个更加精确的发牌器329
9.7 算牌333
9.8 合而为一335
9.9 练习题337
参考文献338
第三部分 数据和Web技术
第10章 棒球:探索关系数据库中的数据340
10.1 引言340
10.2 Sean Lahman数据库341
10.3 汇总球员工资得到球队工资总额343
10.4 合并工资总额数据与其他表中的信息348
10.4.1 在工资总额数据中增加球队名称348
10.4.2 在工资总额数据中增加世界大赛记录351
10.5 探索极端工资352
10.6 练习题354
参考文献355
第11章 CIA世界概况的混搭应用357
11.1 引言357
11.2 采集数据359
11.3 从不同数据源集成数据360
11.4 准备绘图数据361
11.5 使用Google Earth绘图366
11.6 从CIA的XML文件中抽取人口统计信息370
11.7 直接生成KML376
11.8 附加的计算任务381
11.8.1 创建绘图标识381
11.8.2 从字符串生成KML文件的效率381
11.8.3 从HTML文件中抽取纬度和经度383
11.9 练习题383
参考文献386
第12章 利用Web抓取和文本挖掘探索数据科学职位招聘信息388
12.1 引言与动机388
12.2 探索不同的Web网站390
12.3 初步/探索性抓取:Kaggle网站的职位招聘列表395
12.3.1 处理文本399
12.3.2 泛化到其他招聘启事中400
12.3.3 抓取Kaggle招聘启事列表403
12.4 抓取CyberCoders.com404
12.4.1 从一条招聘启事中提取技能列表407
12.4.2 在搜索结果中发现指向招聘启事的链接411
12.4.3 查找招聘启事搜索结果的下一页416
12.4.4 将这些函数集成在一起417
12.5 对任意网站可重用的通用框架418
12.6 抓取Career Builder网站421
12.7 抓取Monster.com网站422
12.8 分析结果:重要的技能424
12.9 Web抓取注意事项430
12.10 练习题431
参考文献431

教学资源推荐
作者: (美)Sheldon Ross
作者: [美] 罗伯特 V. 霍格(Robert V. Hogg),约瑟夫 W. 麦基恩(Joseph W. McKean),艾伦 T. 克雷格(Allen T. Craig) 著
作者: (美)Ronald E. Walpole; Raymond H. Myers; Sharon L. Myers; Keying Ye 著
参考读物推荐
作者: [美] 贝内迪克特·格罗斯(Benedict Gross) 乔·哈里斯(Joe Harris) 埃米莉·里尔(Emily Riehl) 著