像数据科学家一样思考:12步指南(上)大数据应用

来源:互联网 / 作者:SKY / 2019-04-11 20:05 / 点击:
目前,数据科学家正在受到很多关注,因此,有关数据科学的书籍正在激增。我看过很多关于数据科学的书籍,在我看来他们中的大多数更关注工具和技术,而不是数据科

目前,数据科学家正在受到很多关注,因此,有关数据科学的书籍正在激增。我看过很多关于数据科学的书籍,在我看来他们中的大多数更关注工具和技术,而不是数据科学中细微问题的解决。直到我遇到Brian Godsey的“像数据科学家一样思考”,它讨论了哪些工具最有用以及为什么,但主要目标是在智能,高效和成功的情况下完成数据科学工程,以解决实际数据中心问题的解决方案。

数据科学项目的生命周期

在书中,Brian提出数据科学项目包括3个阶段:

第一阶段是准备阶段:在项目开始时收集信息所花费的时间和精力可以避免以后的麻烦。

第二阶段是构建产品:从规划到执行,使用你在准备阶段学到的知识以及可以用的所有工具。

第三阶段即将完成:交付产品,获得反馈,进行修订,产品运维以及完成项目。

4ab46be1dbd80c64fc10e98ff96ec7cb8abe5c76

从图像中可以看出,这3个阶段包含12个不同的任务。我想用这篇文章总结这12个步骤,因为我相信任何有抱负的数据科学家都可以从熟悉它们中受益。

第一阶段:准备

数据科学项目始于准备。你需要建立你所知道的、拥有的、能得到什么、你在哪里以及你想成为什么样。最后一个是最重要的,数据科学项目需要有目的和相应的目标。只有当你有了明确的目标时,才能开始调查可用资源以及实现这些目标的所有可能性。

1-设定目标

27ce9039adb9c6439815c989952c2870e101be14

数据科学项目与许多其他项目一样,主要目标应在项目开始时设定。在设定目标后,你所做的所有工作都是利用数据、统计数据和编程来实现这些目标。

首先,数据科学的每个项目都是有一个“客户”的。有时,“客户”是向你或你的企业支付费用的人,例如,客户或承包代理商。在学术界,“客户”可能是一位要求你分析数据的实验室科学家。有时,“客户”是你的老板或其他同事。无论“客户”是谁,他们都会对可能从你那里得到的东西抱有一些期望。

为了理解这些期望,你需要对“客户”提供的数据提出好的问题。提出好的问题是一项重要且微妙的挑战,因为改变世界的是问题。在他们的假设中好的问题是具体的,但好的答案是可衡量的而且不必要太多的成本。

虽然有时候好问题、相关数据或富有洞察力的分析比其他要素更容易获得,但这三者对于获得有用的答案至关重要。任何旧问题,数据和分析的产品并不总是一个答案。值得注意的是,你需要在项目的每个步骤中都要深思熟虑,而且关键性的要素必须存在。例如,如果你个好问题但不相关的数据,则很难找到答案。

开始的时候是在数据和答案的背景下评估项目目标的好时机。通常,初始目标的设定需要考虑一些商业目的。如果你不从事商业活动,例如,你正在进行研究,那么目的通常是对结果进行一些外部使用,例如在特定领域中推进科学知识或为其他人提供分析工具。

9f4384a84787179f423a19d7f7ba8f54eb133e75

虽然目标源于项目本身的背景,但每个目标都应该通过基于数据科学的实用过滤器来实现。此过滤器包括以下几个问题:(1)有什么可能?(2)什么是有价值的?(3)什么是有效的?将此过滤器应用于好问题、可能的答案、可用数据和可预见的障碍,可以帮助你实现一系列可靠、有价值且高效的项目目标。

2-探索数据

2dafe0afb3d734483778a286d1a8e38baaa0f3c3

数据科学项目准备阶段的第二步是探索现有数据。下图显示了数据科学家可能访问数据的3种基本方式。数据可以是文件系统上的文件,数据科学家可以将文件读入他们最喜欢的分析工具中。数据也可以在数据库中,数据库也在文件系统上,但是为了访问数据,数据科学家必须使用数据库的接口,这是一个帮助存储和提取数据的软件层。最后,数据可能位于应用程序编程接口(API)之后,API是数据科学家与某些系统之间的软件层。

熟悉数据可能需要接触到表单以及如何查看和操作这些表单,以下是其中一些:平面文件(csv,tsv)、HTML、XML、JSON、关系数据库、非关系数据库、API。有时你无法决定选择哪种格式,数据会以你想象不到的格式出现,但你必须处理它。如果你发现某个格式效率低下、笨拙或不受欢迎,你可以尝试设置可能使事情变得更容易的辅助数据存储格式,但需要花费大量时间和精力来设置辅助数据商店。但对于访问效率至关重要的应用程序而言,这个成本是值得的。对于较小的项目,也许不是。当你到达那里时,你必须越过那座桥。

bcf2a0b46859e7ac8b57482634a9b8715baa4d6c

现在你已经了解了常见的数据形式,你需要对它们进行侦察。以下是你应该考虑的方法:Google搜索,组合不同的数据源,从网络爬虫或自行收集它们。就个人而言,我是网络爬虫的忠实粉丝。Web scraper必须做的两件重要事情是以编程方式访问大量URL并从页面中捕获正确的信息。如果你想在Facebook上了解你的朋友网络,理论上可以编写一个脚本来访问所有朋友的Facebook个人资料,保存个人资料页面,然后解析这些页面以获取他们的朋友列表,访问他们的朋友配置文件等等。

3-数据整理

2df70f3734022636cb7af6f6353b9830b13e2e68

阅读延展

1
3