目前,数据科学家正在受到很多关注,因此,有关数据科学的书籍正在激增。我看过很多关于数据科学的书籍,在我看来他们中的大多数更关注工具和技术,而不是数据科学中细微问题的解决。直到我遇到Brian Godsey的“像数据科学家一样思考”,它讨论了哪些工具最有用以及为什么,但主要目标是在智能,高效和成功的情况下完成数据科学工程,以解决实际数据中心问题的解决方案。
在书中,Brian提出数据科学项目包括3个阶段:
第一阶段是准备阶段:在项目开始时收集信息所花费的时间和精力可以避免以后的麻烦。
第二阶段是构建产品:从规划到执行,使用你在准备阶段学到的知识以及可以用的所有工具。
第三阶段即将完成:交付产品,获得反馈,进行修订,产品运维以及完成项目。
从图像中可以看出,这3个阶段包含12个不同的任务。我想用这篇文章总结这12个步骤,因为我相信任何有抱负的数据科学家都可以从熟悉它们中受益。
数据科学项目始于准备。你需要建立你所知道的、拥有的、能得到什么、你在哪里以及你想成为什么样。最后一个是最重要的,数据科学项目需要有目的和相应的目标。只有当你有了明确的目标时,才能开始调查可用资源以及实现这些目标的所有可能性。
1.设定目标
数据科学项目与许多其他项目一样,主要目标应在项目开始时设定。在设定目标后,你所做的所有工作都是利用数据、统计数据和编程来实现这些目标。
首先,数据科学的每个项目都是有一个“客户”的。有时,“客户”是向你或你的企业支付费用的人,例如,客户或承包代理商。在学术界,“客户”可能是一位要求你分析数据的实验室科学家。有时,“客户”是你的老板或其他同事。无论“客户”是谁,他们都会对可能从你那里得到的东西抱有一些期望。
为了理解这些期望,你需要对“客户”提供的数据提出好的问题。提出好的问题是一项重要且微妙的挑战,因为改变世界的是问题。在他们的假设中好的问题是具体的,但好的答案是可衡量的而且不必要太多的成本。
虽然有时候好问题、相关数据或富有洞察力的分析比其他要素更容易获得,但这三者对于获得有用的答案至关重要。任何旧问题,数据和分析的产品并不总是一个答案。值得注意的是,你需要在项目的每个步骤中都要深思熟虑,而且关键性的要素必须存在。例如,如果你个好问题但不相关的数据,则很难找到答案。
开始的时候是在数据和答案的背景下评估项目目标的好时机。通常,初始目标的设定需要考虑一些商业目的。如果你不从事商业活动,例如,你正在进行研究,那么目的通常是对结果进行一些外部使用,例如在特定领域中推进科学知识或为其他人提供分析工具。
虽然目标源于项目本身的背景,但每个目标都应该通过基于数据科学的实用过滤器来实现。此过滤器包括以下几个问题:(1)有什么可能?(2)什么是有价值的?(3)什么是有效的?将此过滤器应用于好问题、可能的答案、可用数据和可预见的障碍,可以帮助你实现一系列可靠、有价值且高效的项目目标。
2.探索数据
数据科学项目准备阶段的第二步是探索现有数据。下图显示了数据科学家可能访问数据的3种基本方式。数据可以是文件系统上的文件,数据科学家可以将文件读入他们最喜欢的分析工具中。数据也可以在数据库中,数据库也在文件系统上,但是为了访问数据,数据科学家必须使用数据库的接口,这是一个帮助存储和提取数据的软件层。最后,数据可能位于应用程序编程接口(API)之后,API是数据科学家与某些系统之间的软件层。
熟悉数据可能需要接触到表单以及如何查看和操作这些表单,以下是其中一些:平面文件(csv,tsv)、HTML、XML、JSON、关系数据库、非关系数据库、API。有时你无法决定选择哪种格式,数据会以你想象不到的格式出现,但你必须处理它。如果你发现某个格式效率低下、笨拙或不受欢迎,你可以尝试设置可能使事情变得更容易的辅助数据存储格式,但需要花费大量时间和精力来设置辅助数据商店。但对于访问效率至关重要的应用程序而言,这个成本是值得的。对于较小的项目,也许不是。当你到达那里时,你必须越过那座桥。
现在你已经了解了常见的数据形式,你需要对它们进行侦察。以下是你应该考虑的方法:Google搜索,组合不同的数据源,从网络爬虫或自行收集它们。就个人而言,我是网络爬虫的忠实粉丝。Web scraper必须做的两件重要事情是以编程方式访问大量URL并从页面中捕获正确的信息。如果你想在Facebook上了解你的朋友网络,理论上可以编写一个脚本来访问所有朋友的Facebook个人资料,保存个人资料页面,然后解析这些页面以获取他们的朋友列表,访问他们的朋友配置文件等等。
3.数据整理
第三步是数据整理,就是将困难、非结构化或其他任意格式获取数据和信息转换为传统软件可以使用的内容的过程。整理不是一项任务,并不可以事先准确地规定步骤,因为每个案例都不同,需要解决的问题也不一样。
在整理之前,好的整理归结为可靠的计划,然后进行一些猜测和检查,看看哪些有效,花费一点时间进行数据整理可以为你减少很多痛苦。通常,数据整理计划的选择应在很大程度上取决于你在首次调查数据时发现的信息。如果你可以想象解析数据或以某种假设的方式访问它,你可以尝试编写一个执行操作的脚本。数据整理是一个不确定的过程,因此最好先探索一下,然后根据你所看到的内容制定整理计划。
没有一种方法或一种工具可以实现使混乱数据清洁的目标。市面上有许多工具可以做很多事情,但没有一个工具能够处理任意格式数据。数据以如此多的形式存在,并且出于不同的目的,甚至目前没有一个应用程序能够以任意目的读取任意数据。简而言之,数据整理是一个不确定的事情,需要在特定情况下使用特定工具来完成工作。你可以尝试使用文件格式转换器或专有数据管理器并编写脚本来处理数据。
4.评估数据
在开发以数据为中心的产品之前,了解数据内容值得花费一点时间和精力。如果你对数据有更多了解,你将在整个数据科学项目的每一步做出更明智的决策,并在获益到最后。如果没有初步的评估,你可能会遇到异常值、偏差、精、特异性或数据其他固有的问题。为了更好地发掘这些数据并更好地了解数据,整理数据后的第一步应该是计算一些描述性统计数据。
描述性统计是定量描述信息集合的主要特征或定量描述本身的学科。考虑描述、最大值、最小值、平均值、数据集的摘要。如果不提及推论统计数据,通常很难讨论描述性统计数据。推论统计是指你在没有完全统计数据的情况下得出的结论。对于数据集,你可以说以下内容:
-
· 描述性统计数据:“我有什么?”
-
· 推论统计数据:“我能得出什么结论?”
大多数统计学家都认为推论统计数据可以得到大部分很酷的结论:当世界人口达到峰值然后开始下降时,病毒流行病的传播速度有多快;当股市上涨时,人们是否会在Twitter上对一个主题有一般积极或消极的情绪等等。而描述性统计在使这些结论成为定论方面起了非常重要的作用。总之,了解你拥有的数据以及它可以为你做些什么是值得的。
使用描述性统计信息,你可以在数据集中找到与特定概念描述匹配的实体。如果你从事在线零售业务,你可能会将客户视为你的实体,并且你希望识别那些可能购买特定作者新书的。如果你在金融领域工作,你可能会在股票市场上寻找即将上涨的股票。如果可以对这些特征进行简单搜索,那么工作就很容易,你不需要数据科学或统计数据。但是,如果这些特征并不是所有数据固有的。
在询问了一些问题并设定一些目标后,你调查了数据世界,整理了一些具体数据,并了解了这些数据。在每一步中,你都学到了一些东西,现在你应该能够回答在项目开始时提出的一些问题。现在让我们进入建设阶段。
5.制定计划
第五步是制定计划。与早期的规划阶段一样,不确定性和灵活路径应该是你的首要考虑因素。你现在对你的项目了解了更多,所以之前存在的一些不确定因素已不复存在,但某些新的不确定因素已经出现。把你的计划想象成一条通往城市的试验性路线,这条城市的街道正在不断建设中。你知道你想去哪里以及去往那里的几种方法,但是在每个十字路口都可能有道路封闭、交通不畅或人行道坍塌和破碎。当你遇到这些障碍时,你必须做出决定,但是现在只需要一两个备用计划就足够了。
如果给了新信息或新约束或其他原因,计划和目标可随时改变。你必须向与项目有关的每个人(包括客户)传达重大更改信息。该项目的客户对项目的最终产品具有既得利益,因此应该让客户了解目标的任何变化。客户可能也对进度报告感兴趣,包括你到目前为止的初步结果以及如何获得它们,但这些是最低优先级。
关注客户关心的事情:客户是整个项目的核心,它们希望我们实现什么,他们到底关心什么,知道这些很重要。如果他们的目标错误,及时的沟通很重要。在此阶段与客户会面的唯一必须结论是,你清楚地沟通新目标是什么以及他们批准这些目标。
你也可以考虑将你的基本计划传达给客户,特别是涉及使用他们的资源时,例如数据库、计算机和其他员工,他们会有兴趣了解你将如何以及使用它们的程度。
6.分析数据
第六步是数据的统计分析。统计方法通常被认为是进行良好数据科学所需技能和知识的近一半或三分之一,另一大部分是软件开发,剩下的较小部分是主题或领域专业知识。
统计学的一方面是数学,另一方面是数据。数学 ,尤其是应用数学,我们需要通过一组工具提供统计数据,以便进行分析和解释。无论如何,数学通常不会触及现实世界,它完全是基于逻辑并始终从一组假设开始,每个数学陈述都可以用if开头(如果假设是真的),这可以将语句及其结论提升为抽象性。这并不是说数学在现实世界中没用,恰恰相反数学而不是科学,更多的是我们可以用来描述事物的词汇。其中一些可能在现实世界中与词汇表包含的单词一样,但很少有描述完全正确。
然而,数学确实提供了统计使用的大量基础。统计分布通常由复杂的方程式描述,其根源在实际的科学意义上是有意义的。拟合统计模型通常是使用数学优化技术,即使假设项目数据所在的空间也必须用数学方法描述,描述可能仅仅是“N维欧几里德空间”。
除数学外,统计学还拥有一套专属的以数据为中心的技术。
· 描述性统计是一种通常直观或简单的统计数据,可以提供对数据的良好概述,不会过于复杂或难以理解。在某种意义上,描述性统计通常与数据保持接近。
· 推理统计本质上是从数据中删除的一个或多个步骤。推断是基于可测量的相关量来估计未知量的过程。通常,推论统计涉及统计模型,该模型定义数量,可测量和不可测量,以及它们彼此之间的关系。推论统计的方法可以从简单到复杂,也可以在抽象性和可解释性方面有所不同。
· 统计建模是使用描述性统计系统后使用模型来帮助分析和解释与系统相关数据的一般实践。描述性和推论性统计都依赖于统计模型,但在某些情况下,模型本身的明确构造和解释起次要作用。
通过统计建模,主要关注的是理解模型及其描述的底层系统。数学建模是一个相关概念,它更强调模型构建和解释,而不是与数据的关系。统计建模侧重于模型与数据的关系,以下是你应该了解的统计建模中的一些重要概念:
离原始数据最远的是一组统计技术,通常称为黑盒方法。机器学习和人工智能的许多方法都是黑盒方法。如果你尝试将出现在数据集中的个体分类为几个类别,并且你应用机器学习技术(如随机森林或神经网络),事后往往很难说为什么是以某种方式分类。数据进入黑匣子,分类出来,最后你通常不能解释两者之间究竟发生了什么。