跳至内容

数据科学:入门 / 多学科融合

来自维基教科书,开放世界中的开放书籍


第 02 章:多学科融合



章节总结

[edit | edit source]

这是对构成新数据科学学科的八个“父”学科的非常简要的概述。它建议数据科学家在解决问题的过程中应该提出的一般性问题。

第一章所述,数据科学是多种学科的融合。我们还注意到,单个数据科学家很可能在一个或两个学科中是专家,并在另外两个或三个学科中精通。可能没有一个人是所有这些学科的专家,而且极少有人精通 5 或 6 个学科。这意味着数据科学必须作为一个团队来实践,在整个团队成员中,所有学科都具有专业知识和技能。让我们探索这些学科是什么以及它们如何为数据科学做出贡献。

数据工程

[编辑 | 编辑源代码]

(有关更深入的讨论,请参阅第 6 章:像数据工程师一样思考)

数据工程是数据科学中的数据部分。根据维基百科数据工程涉及获取、导入、转换、存储和检索数据。数据工程还包括向数据添加元数据。由于所有这些活动都相互关联,数据工程师必须将这些问题作为一个整体来解决。例如,我们必须了解如何存储和检索数据,以便创建一个良好的导入过程。数据工程需要深入了解要解决的数据科学问题的总体性质,以便制定一个强大的数据采集和管理计划。计划制定完成后,数据工程师就可以开始将其实施到数据管理系统中。

获取 - 这是获取数据的过程。数据科学家的数据工程师部分需要问问题:“数据来自哪里?”、“数据是什么样的?”以及“我们的团队如何访问数据?”。数据可以来自许多地方,例如RSS 订阅、传感器网络或预先存在的数据存储库。数据可以是数字、文本文档、图像或视频。数据可以由团队收集或从供应商处购买。例如,如果我们要调查高速公路,我们可以将传感器安装在一段高速公路上,用来测量汽车的速度。这些传感器会以文本消息的形式向我们发送数据,其中包括每辆经过传感器的汽车的日期、时间、车道和速度。

导入 - 这是将数据从源头导入到用于分析的计算机系统中的过程。数据科学家的数据工程师部分需要问问题:“有多少数据正在导入?”、“导入速度有多快?”、“我们要把数据放在哪里?”、“我们是否有足够的磁盘空间来存储数据?”以及“我需要以任何方式过滤导入的数据吗?”。数据以字节为单位衡量。一个字节大致相当于一个书面词的一个字符。一个一页的文档大约有 1,000 字节或一个千字节 (1K)。例如,如果我们要调查高速公路,我们可能会以每秒 10,000 字节的速度接收汽车速度数据,持续一周的时间。一周有 604,800 秒。这意味着您将在一个星期内接收 6,048,000,000 字节(6 吉字节)的数据。没问题。这可以放在一个拇指驱动器上。

转换 - 这是将数据从收集时的格式转换为分析所需的格式的过程。数据科学家的数据工程师部分需要问问题:“原始数据的格式是什么?”以及“处理后的数据的格式需要是什么?”。常见的原始数据格式是逗号分隔值 (CSV),看起来像

20120709,135214,157,3,57.4
20120709,135523,13,2,62.1

例如,如果我们正在调查高速公路,我们可能会收到类似上面的示例的数据。第一行中的片段是:日期,2012 年 7 月 9 日;时间,下午 1:52.14;传感器,#157;车道,#3;速度,57.4 英里/小时。需要将数据从 CSV 格式转换为类似于电子表格格式的格式,如下所示

年份 月份 日期 24 小时制 分钟 传感器编号 车道编号 英里/小时
2012 07 09 13 52 14 157 3 57.4
2012 07 09 13 55 23 13 2 62.1

了解各种“从”和“到”格式对于数据科学家来说非常重要。

元数据 - 维基百科说,元数据通常被称为关于数据的资料。在上面的例子中,数据是英里/小时和车道。传感器是“地球表面数据收集位置”的代理,日期和时间是关于数据“收集时间”的资料。我们可以向我们的数据添加其他元数据,比如当时的天气状况和道路状况。我们可以推导出其他元数据,比如是否是工作日、假日或周末,以及是否是高峰时间。我们还可以添加元数据,指示哪些人在什么条件下可以看到数据,比如“收集后 1 年内不得公开传播”。元数据通常在导入时和转换时添加。

存储 - 这是将数据放入数据管理系统中的过程。数据科学家的数据工程师部分需要问问题:“哪种系统最适合存储我们的数据?”、“系统速度有多快?”、“该系统需要多少额外的空间?”。我们可以在文件系统中将数据存储在文件中。文件系统通常速度很快,但功能很少。我们可以将数据存储在数据库中。这些通常比文件系统慢,但功能更多。例如,在我们的高速公路示例中,我们可能在 CSV 格式中有 6000 万行数据。(每行 100 字节,大约 6 吉字节)。我们可以将其存储在文件系统中的一个大文件中。读取它很快,但在这种格式下,我们无法按时间和位置计算平均值。或者,我们可以将其存储在数据库中,这样就可以轻松地按位置和时间计算平均值,尽管需要更多时间来读取数据。

检索 - 这是将数据取回的过程。数据科学家的数据工程师部分需要问问题:“我们将如何向数据提问?”以及“我们将如何显示数据?”。我们可以通过查询系统搜索数据,也可以在表格中显示数据的子集。例如,在我们的高速公路示例中,我们可能只想搜索某个传感器在早高峰期间的测量结果。然后,我们可能想显示一个表格,显示每天早高峰的平均速度。在这种情况下,如果数据存储在数据库中会更好。因此,了解我们想要进行的分析类型将有助于我们制定数据存储策略。

科学方法

[编辑 | 编辑源代码]

(有关更深入的讨论,请参阅第 9 章:像科学家一样思考)

科学方法是数据科学中的科学部分。根据维基百科科学方法是一个通过将推理原则应用于从可重复实验中检验假设得出的经验证据来获取新知识的过程。当科学家听到有人对某个事实做出断言时,他们自然会想知道证据是什么以及该证据的接受标准是什么。

推理原则 - 逻辑推理有两种一般形式:归纳演绎。简单地说,归纳推理从具体观察得出一般性原则,而演绎推理从一般性原则得出具体结论。请考虑以下两个示例

归纳论证

  1. 每个人都知道的所有生命形式都依赖于液态水才能生存。
  2. 因此,所有已知生命都依赖于液态水才能生存。

演绎论证

  1. 所有的人都是凡人。
  2. 苏格拉底是人。
  3. 因此,苏格拉底是凡人。

我们拥有的绝大多数科学知识都是基于归纳推理。数据科学家的科学家部分需要问问题:“特定结论背后的推理是什么?”

经验证据 - 经验的证据是由观察或实验产生的数据。这与从逻辑论证中推导出来的数据或神话和传说传播的结论形成对比。

  • 最经典的例子是伽利略审判。当时(1633 年),天主教会坚持亚里士多德的逻辑论点,即地球是宇宙的中心。伽利略用他新发明的望远镜进行的观察为哥白尼的断言提供了证据,即地球围绕太阳运行。审判的结果是,伽利略因异端罪被判处软禁。2000 年,教皇约翰·保罗二世为对伽利略所犯的不公正行为道歉。

数据科学家的科学家部分需要问问题:“导致特定结论的证据是什么?”

假设检验 - 此过程通常断言两个命题,其中只有一个可能是真的。科学家收集了支持和反对每个命题的经验证据,然后接受其中一个并拒绝另一个。通常,其中一个假设被称为零假设,另一个被称为备择假设。零假设通常是一个关于我们目前对宇宙运行方式的理解的命题。备择假设是一个关于我们认为宇宙真正运行方式的命题。刑事审判是了解假设检验的经典类比。

  • 只要被告人有罪没有被证明,被告人就被视为无罪。检察官试图证明被告人的罪行。只有在有足够的指控证据时,被告人才会被定罪。在程序开始时,有两个假设: “被告人无罪”和“被告人有罪”。第一个被称为零假设,暂时被接受。第二个被称为备择假设。这是试图证明的假设。只有当错误定罪非常不可能时,才会拒绝无罪假设,因为人们不想定罪无辜的被告人。

数据科学家的科学家部分需要问一个问题, “为了得出特定结论,检验了哪些零假设和备择假设?”

可重复的实验 - 根据 维基百科,实验 是一种有条理的试错程序,其目的是验证、证伪或建立假设的有效性。实验的目标和规模差异很大,但始终依赖于可重复的程序和对结果的逻辑分析。一个孩子可能会进行基本的实验来了解重力的本质,而科学家团队可能会花费数年时间进行系统研究以推进对亚原子粒子的理解。

  • 一个著名的例子是“斜面”或“球和斜坡实验”。在这个实验中,伽利略使用了一个斜面和几个不同重量的钢球。通过这种设计,伽利略能够减慢下落运动并以相当的精度记录钢球通过梁上的某些标记的时间。伽利略反驳了亚里士多德关于重量影响物体下落速度的断言。根据亚里士多德的落体理论,较重的钢球将比较轻的钢球先到达地面。伽利略的假设是这两个球会同时到达地面。

数据科学家的科学家部分需要问一个问题, “关于这个实验的方法和数据是否有足够的信息让我可以复制它?”

数学

[edit | edit source]

(有关更深入的讨论,请参见第 10 章:像数学家一样思考)

数学(连同统计学)是数据科学的大脑部分。根据 维基百科,数学 是对数量、结构、空间和变化的研究。当这些被用来解决实际问题时,它被称为应用数学

数量 - 我们只是意味着数字。数据科学家的数学家部分需要问一个问题, “我感兴趣的东西将如何用数字表示?”以及“什么类型的数字最适合表示我感兴趣的东西?”数字可以是整数、分数、实数或复数。例如,如果我们要调查高速公路,我们可以用英里来测量高速公路的长度,用整数表示。我们还需要考虑将对数字执行的运算类型。我们使用算术来操作和表示数据中的数量。

结构 - 大多数数学对象集都表现出内部结构。数据科学家的数学家部分需要问一个问题, “我感兴趣的东西有什么样的内部结构?”以及“哪组方程将揭示结构?”结构可以是像 之类的恒定级数,或像 之类的简单线性关系。例如,如果我们要调查高速公路,我们可能想知道限速的结构或车道宽度的结构。我们使用代数来操作和表示数据的结构。

空间 - 我们调查的东西通常与二维或三维空间有一些关系。以数学家的思维方式,数据科学家需要问一个问题, “我感兴趣的东西是否有空间成分,无论是实际的还是理论的?”以及“我如何捕获和表示该空间成分?”空间成分可以是纬度和经度,也可以是重要的表面。例如,如果我们要调查高速公路,我们可能想知道特定高速公路段的确切位置或高速公路表面的平滑程度。我们使用几何三角学来操作和表示数据的空间成分。

变化 - 我们调查的东西经常发生变化——可能随时间变化或随距离变化。数据科学家的数学家部分需要问一个问题, “我感兴趣的东西之间的关系是否会发生变化?”以及“我将如何描述这种变化的关系?”变化可以是......例如,如果我们正在调查高速公路,道路弯道的锐利程度可能会随着该部分高速公路的限速而变化,或者沥青的深度可能会改变每小时可以安全行驶的汽车数量。我们使用微积分来操作和表示数据中发生变化的关系。

应用数学 - 这是具有专业知识的数学。一般来说,这是数据科学家所从事的数学类型。

统计

[edit | edit source]

(有关更深入的讨论,请参见第 11 章:像统计学家一样思考)

统计学(连同数学)是数据科学的大脑部分。维基百科指出,统计学 是对数据的收集、组织、分析和解释的研究。它涉及探索数据、发现模式和关系、创建模型以及对未来进行推断的方法。统计学是与数据科学有最直接血统的学科。统计学家负责了解将对数据进行的分析,以便能够适当地收集和组织数据。

收集 - 统计学家与数据工程师合作,确保数据生成和收集以允许得出有效结论的方式进行。统计学家创建了研究设计,包括(如果适用)实验设计,该设计控制数据的收集。数据科学家的统计学家部分需要问一个问题, “将使用什么研究程序来生成数据?”

组织 - 统计学家与数据工程师合作,确保数据的编码和归档,以便信息不仅可以保留并用于项目内部分析,还可以用于与他人共享。统计学家负责创建数据字典,该字典与数据库无关。数据工程师会根据统计学家编制的数据字典创建数据库模式,该模式与数据库相关。数据字典指定变量、有效值和数据的格式。数据库模式描述了特定的数据库管理系统如何存储数据。数据科学家的统计学家部分需要问一个问题, “数据是否以这样的方式存储,以便于将要进行的统计分析?”

分析 - 统计学家与数学家合作,总结、聚合、关联和创建数据模型。统计学家是使用描述性推断性统计分析数据的专家。这包括创建数据的摘要(例如平均值)以及测试差异(这个平均值是否明显高于那个平均值)。数据科学家的统计学家部分需要问一个问题, “根据数据,应该使用哪些描述性和推断性统计量来检验假设?”

解释 - 统计学家与主题专家和视觉艺术家合作,以对那些需要使用结果的人来说易于理解的方式报告结果和汇总数据(表格和图表)。数据科学家的统计学家部分需要问一个问题, “谁将获得结果,他们想了解什么?”

高级计算

[edit | edit source]

(有关更深入的讨论,请参见第 08 章:像程序员一样思考)

高级计算是数据科学的重中之重。根据维基百科计算机编程(通常简称为编程或编码)是设计、编写、测试、调试和维护计算机程序源代码的过程。此源代码是用一种或多种编程语言编写的。编程的目的是创建一组计算机用来执行特定操作或表现出所需行为的指令。编写源代码的过程通常需要在许多不同学科方面的专业知识,包括对应用领域的了解、专门的算法和形式逻辑。

软件设计 - 根据维基百科,软件设计是一个将软件的用途和规格转化为计划的过程,该计划包括低级组件和算法实现,并具有总体架构视图。程序员通过编写源代码来实现软件设计。软件设计师经常使用建模语言,例如UML来创建设计。例如,

作为数据科学家的一部分,程序员需要问自己:“为了解决我们正在处理的问题,我们需要哪些组件和算法?”

编程语言 - 根据维基百科,编程语言是一种人工语言,旨在与计算机沟通指令。编程语言用于创建程序,这些程序控制计算机和外部设备(如打印机、磁盘驱动器和机器人)的行为。程序也精确地表达算法。编程语言可以被认为是“低级”的,例如“汇编语言”,它们与内置于硬件中央处理单元 (CPU) 的机器语言功能几乎一一对应。更常见的是,程序员使用“高级”语言,例如 Java、Python 和 C++,这些语言将许多机器级功能聚合在一起,形成人类级功能,例如“读取数据”和“打印”。作为数据科学家的一部分,程序员需要问自己:“我应该使用哪种编程语言来解决手头的难题?”

源代码 - 根据维基百科,源代码是指使用某种人类可读的计算机语言(通常以文本形式)编写的任何计算机指令集合(带注释)。执行时,源代码被翻译成机器代码,计算机可以直接读取并执行。程序员经常使用集成开发环境 (IDE),它允许他们输入、调试和执行源代码。以下是传统的“Hello World”程序的源代码示例,分别用JavaPython编写

/**
 * Traditional "Hello World" program In Java
 */

class HelloWorldApp {
 public static void main(String[] args) {
 System.out.println("Hello World!"); // Display the string.
 }
}


#
# Traditional "Hello World" program in Python 2.x
#

print "Hello World!"


作为数据科学家的一部分,程序员需要问自己:“已经存在哪些源代码可以帮助解决我们正在处理的问题?”

可视化

[edit | edit source]

(有关更深入的讨论,请参见第 11 章:像视觉艺术家一样思考)

可视化是数据科学的漂亮面孔。根据维基百科信息可视化是对抽象数据的视觉表示,以增强人类认知。抽象数据包括数值和非数值数据,例如文本和地理信息。该维基百科还将图形设计描述为为了向目标受众传达特定信息而进行的创造性过程。良好的可视化是创造性过程的结果,该过程构成数据的抽象形式,使其具有信息量且美观有趣。

创造性过程 - 维基百科将创造力定义为产生既原创又值得的东西的过程。这个过程包括发散性思维,它涉及为一个问题产生多个答案;概念融合,其中解决方案源于两个截然不同的参考框架的交叉点;以及磨练,其中可接受的解决方案从对解决方案的许多连续不可接受版本进行迭代中产生。数据科学家的视觉艺术家部分需要问:“我们可以用几种不同的方式来显示这些数据?”以及“我们如何在接下来的几次迭代中改进这种可视化?”

数据抽象 - 维基百科将数据抽象定义为以有意义的方式处理数据位。这意味着我们不想可视化所有原始数据,而是需要可视化对数据的操作(聚合、汇总、相关性、预测),这些操作在我们试图解决的问题的背景下是有意义的。数据科学家的视觉艺术家部分需要问:“我们如何简化数据的內容以便它可以被有意义地可视化?”

信息有趣 - 根据维基词典,人类会关注有趣或有吸引力的事物。吸引人或美丽的事物对感官来说是令人愉悦的。虽然美在眼见者心中,但有一些或多或少公认的美学原理,例如对称和和谐惊讶在和谐的背景下,对人类来说尤其有趣。数据科学家的视觉艺术家部分需要问:“我们如何可视化数据的內容,使其具有令人愉悦的惊喜感?”

考虑以下图形。它是 2005 年初互联网的部分地图。每条线代表两个IP 地址。请注意,它只抽象了关于互联网的一小部分数据。它显然经历了许多迭代才最终确定了如此和谐的配色方案。它整体上是对称的,细节上有一些惊喜(明亮的“星星”)。最后,它在理解万维网的背景下是有意义的。

黑客思维

[edit | edit source]

(有关更深入的讨论,请参见第 06 章:像黑客一样思考)

黑客是数据科学的秘诀。根据维基百科,黑客是指修改自己的计算机系统,包括构建、重建、修改和创建软件、电子硬件或外设,以使其变得更好、更快、增加功能,或使其做一些它本来不打算做的事情。对于数据科学家来说,黑客不仅仅限于计算机系统,而是扩展到解决数据问题的整个过程。将其视为一种高级的自己动手 (DIY)工作方式。

数据科学黑客涉及发明新的模型,探索新的数据结构,以及以非传统的方式混合 8 个母学科。黑客需要大胆、创造力、愿景和毅力。以下举两个例子。(尽管它们涉及硬件,但之所以提出它们是因为它们可以在几句话内就能被理解。第四章中提供了更复杂的数据科学示例。)

  • 一个著名的例子是史蒂夫·沃兹尼亚克手工制作的苹果 I计算机。它是由从惠普的垃圾箱中收集的零件和电子剩余供应商店购买的零件组装而成。沃兹尼亚克想免费提供这些计划,但他的合伙人史蒂夫·乔布斯说服了他应该出售现成的机器。正如人们常说的,接下来的故事就是历史了。
  • 另一个例子是卡内基梅隆大学的互联网可乐机。[1] 在万维网出现之前,互联网的早期,卡内基梅隆大学的学生将他们当地的可乐机连接到了互联网并对其进行了改造。学生可以查看哪些内部分配柱最近被装满,这样他们就可以确保买到冷的可乐,而不是热的可乐。这很重要,因为这台机器每 12 分钟售出一瓶可乐,每天要补充几次。

数据科学家通常需要数据等效的黑客空间,他们可以在那里聚在一起,互相帮助发明新的分析解决方案。数据科学家的黑客部分需要问自己:“我们需要修改我们的工具或创建新的东西来解决我们的问题吗?”以及“我们如何结合我们不同的学科,得出有见地的结论?”

领域专业知识

[edit | edit source]

(有关更深入的讨论,请参见第 12 章:像领域专家一样思考)

领域专业知识是将数据科学联系在一起的粘合剂。根据维基百科,学科或领域专业知识是指在特定领域或主题方面具有专业知识或技能。口头提及主题专家有时会拼出缩写词“SME”(“S-M-E”),有时则将其发音为一个词(“smee”)。任何知识领域都可以成为数据科学调查的对象,包括(但不限于)医学、政治、物理和生物科学、营销、信息安全、人口统计,甚至文学。每个数据科学团队都必须至少包括一个对所解决问题具有学科专业知识的人。

领域专业知识包括了解哪些问题很重要,以及了解什么是充分的答案。领域专家了解他们的知识的客户想要了解什么,以及如何最好地包装知识,以便他们的客户能够轻松地吸收。例如,

  • Twitter 的数据科学家埃德温·陈计算并可视化了将软饮料称为“苏打水”、“汽水”和“可乐”的推文的地理分布。[2] 仅仅观察到中西部使用“汽水”,东北部使用“苏打水”很有趣,但缺乏解释。为了理解为什么存在这些地理划分,我们需要咨询社会学、语言学、美国历史,甚至人类学领域的专家——他们可能对数据科学一无所知。您认为为什么会出现这些地理语言差异?
  • Nate Silver 是一位统计学家,也是美国政治领域的专家。他的博客[3] 定期结合数据和对数据的解释。在他的文章“Romney 如何通过选择竞选搭档影响选举结果”[4] 中,他不仅告诉我们根据他的数学模型存在哪些差异,还解释了这些结果是如何产生的。

数据科学领域专家的职责需要问:“我们解决的问题的重要性是什么?”以及“我们的客户应该了解我们发现的哪些具体内容?”

作业/练习

[edit | edit source]

熟悉 R 编程环境。组成 3 到 4 人的团队,来自同一个班级。作为一个团队一起参加学习会议,处理以下内容。看看你是否可以向彼此解释你的操作。互相帮助理解发生了什么。你可能需要尝试几种方法才能使操作正确。这是正常的。你们中的一些人比其他人更“快”。请互相帮助,让你们都“理解”。

  • 打印一份 Google R 样式指南的副本并仔细阅读。[5] 现在,指南的大部分内容可能不太清楚,但随着我们深入学习这本书,它会变得越来越清晰。保留打印好的副本以备将来参考。
  • 在网上搜索“R 入门”、“R 教程”、“R 基础”和“R 命令列表”。选择 4 到 5 个这样的网站来学习。尝试完成每个网站的前几个示例。许多入门教程速度过快或假设读者有太多先验知识,所以如果变得过于复杂,只需尝试另一个网站。
  • 尝试以下命令
  • library(help="utils")
  • library(help="stats")
  • library(help="datasets")
  • library(help="graphics")
  • demo()
  • demo(graphics)
  • demo(persp)
  • 编写一个简短的 5 到 7 行程序,使其能够执行并保存。确保在注释部分包含所有贡献者的姓名。
  • 列出团队学习使用的网站,并指出哪个最有用。
  • 列出团队在学习会议结束时留下的前 10 个未解答的问题。

进一步阅读

[edit | edit source]
  • Jeffrey M. Stanton (2012 年 5 月 20 日). "数据科学入门". 锡拉丘兹大学信息研究学院. Retrieved 2012 年 8 月 8 日..

参考文献

[edit | edit source]
  1. CS Department Coke Machine (2005 年 2 月 14 日). "互联网上唯一的'可口可乐'自动售货机". 卡内基梅隆大学计算机科学. Retrieved 2012 年 8 月 8 日..
  2. Edwin Chen (2012 年 7 月 6 日). "苏打水与汽水:Twitter 视角". Edwin Chen 的博客. Retrieved 2012 年 8 月 8 日..
  3. Nate Silver. "FiveThirtyEight". 博客. 纽约时报. Retrieved 2012 年 8 月 8 日..
  4. Nate Silver (2012 年 8 月 8 日). "Romney 如何通过选择竞选搭档影响选举结果". 博客. 纽约时报. Retrieved 2012 年 8 月 8 日..
  5. "R 样式指南". Google, Inc. Retrieved 2012 年 7 月 6 日..
[edit | edit source]

您可以自由地

  • 分享 — 复制、分发、展示和表演作品(本维基页面)。
  • 混音 — 改编或制作衍生作品。

在以下条件下

  • 署名 — 您必须将此作品归因于维基教科书。您不得暗示维基教科书以任何方式认可您或您对本作品的使用。
  • 相同方式共享 — 如果您更改、转换或以本作品为基础,您只能在与本许可相同或相似的许可下分发由此产生的作品。
  • 放弃 — 如果您获得版权持有者的许可,上述任何条件都可以放弃。
  • 公共领域 — 如果本作品或其任何部分根据适用法律属于公共领域,其状态不受本许可的影响。
  • 其他权利 — 本许可不会以任何方式影响以下任何权利
  • 您的合理使用权或其他适用版权例外和限制;
  • 作者的署名权;
  • 他人可能对作品本身或作品使用方式拥有的权利,例如公开权或隐私权。
  • 注意 — 对于任何再利用或分发,您必须向他人明确说明此作品的许可条款。最好的方法是链接到以下网页。
http://creativecommons.org/licenses/by-nc-sa/3.0/
华夏公益教科书