数据科学早已不是新鲜事物了,不过对数据质量的需求却是这几年才激增起来的。这可不是一阵时尚或旧词新用,而是一场革命。大至总统选举,小至总部设在厨房餐桌的小创业公司的各种决策,已不再是建立于直觉与猜想之上,而是植根于真实可靠的数据。
数据科学发展日新月异,如今各种数据工具已经形成了一个庞大的生态系统。我花了一个多月以尝试给这个生态系统勾画出一个清晰的轮廓,在接下来的文章里会介绍给大家。
数据科学本身功能交叉,许多数据公司与工具难以归类。但总体来说,它们分属数据专家工作流程中的三个主要部分:数据获取、数据处理、数据分析(文首图可见本生态系的概貌)
为何要勾画这个数据生态信息系统?
我花了大量时间与数据专家交流,了解他们的工作流程、难点及解决方案。数据科学工具成千上万,这个生态系统表当然无法将其一一罗列,不过最常见的软件、公司及推动这些工具发展的开源程序都已包含其中。
数据专家不能只生活在R语言或Excel表格里。他们需要工具来获得质量拔尖且可用于预测分析的数据。其实我觉得这正是统计学家和数据专家的区别所在。在我看来,统计学家使用数据进行回归分析。而数据专家需要切实获取数据、进行回归分析、沟通结果、展示模式,并超越所在机构当时的局限,立足于制高点带领大家寻求切实可行的突破发展。鉴于他们需要统筹整个数据通道,我希望这个数据生态系统可以罗列出数据专家门常用的重要工具和使用方法,以及工具之间的交互联系。
现在干货来了!
第一部分:数据源
数据是整个数据生态系统的源头。总的来说,数据源可分为数据库、应用和第三方数据三类。
数据库
结构化数据库早于非结构化数据库出现。结构化数据库每年有约250亿美元的市场,你可以在数据生态系统图里看到众所周知的Oracle,和一些新创公司譬如MemSQL等。结构化数据库储存有限的数据列,一般由结构化查询语言(SQL)运行,用于数据可靠完善至关重要的领域,比如说财政和运营。
对结构化数据库有一个重要假设,那就是查询数据时必须能得到一致且完善的结果。想一想谁绝对需要这样一种结构化数据库?对了,就是你的银行。它们存储账户信息、个人姓名、借款等等,必须随时分毫不差地知道你账户中的金额。
而另外一种则是非结构化数据库。情理之中,非结构化数据库是由数据专家们开拓的,因为数据专家眼中的数据与账户并不相同。数据专家不太在意查询结果绝对一致,他们更关注数据的灵活性。因此,非结构化数据在许多方面降低了对数据存储和查询的要求。
很多非结构化数据库是谷歌获得成功的直接产物。谷歌尝试把互联网存储在数据库中,其野心和工程之庞大可想而知。MapReduce是一种用于这种数据库的技术,虽然它一定程度上没有结构化查询语言 (SQL)那么强大,但是用户可以依据需要来调整和扩充它们的数据。MapReduce的数据使用甚至已经超出了谷歌的初始预期。比如现在谷歌可以在所有网站间查询,并根据网站之间的互相链接来调整搜索结果。这种可量化的灵活查询使谷歌获得了巨大的竞争优势,因此雅虎和其他公司以巨额投资来开发这种技术的开源版本,名叫Hadoop。
此外,非结构化数据库通常所需的储存空间通常更小。在过去数据存储十分昂贵,因此几年前,一些主要的互联网公司不得不每隔几个月就清空一次数据库。现在这种情况已难以想象了。
从强大的推荐引擎,到世界级的翻译系统,到令人难以置信的存货管理,都建立于这些数据之上。非结构化数据库一般来说没有结构化数据库那么精确,但对于许多应用(尤其是数据科学界),这个折衷是值得的。举例来说,比如你的非结构化数据库在100个机器上运行,但是其中有一个当机了。这时你仅用99台机器(而非100台)来决定向用户推荐观看一部特定的电影,也完全可行。这种类型的数据库看重灵活性,量化以及速度,哪怕不能随时保证完全精确。
还有一个更有名的例子。一个软件公司创建了一个基于Hadoop的非结构化数据库软件Cloudera。来看看它有多大的成长空间吧:7年前,我接到风投的电话,他们预期Cloudera在全球有10到15家公司的市场,去年Cloudera已获得了将近10亿美元的融资。
随着数据专家取代财务和会计,成为最主要的数据消费者,数据库将会越来越走进每一个人的生活 。
商业应用
十年前,没有人想过能把重要的商业数据存在云端,如见这却早已成为了现实。这也许是商业的IT基础结构的最大转变之处。
我在数据库生态系统中列出了四种主要的商业应用,分别是销售、营销、产品和消费者,每一种功能都有多种SaaS应用可供选择。SalesForce 应该是首先掀起这股趋势的并最先获得成功的。他们把软件开发的目标人群是终端用户(销售团队),而非单个的首席技术官。这对他们的用户十分有用,在此过程中,大家也能看到公司客户能够信任地把重要公司数据放在云端。
销售数据不再存在于用户自己安装的内部数据库,而是被放在云端,由致力于保证数据可用且稳定的云端公司提供服务。其他公司也纷纷效仿这种做法。如今基本上每个商业部门都有一个对应的数据应用。Marketo存储营销数据,MailChimp存储电子邮件,Optimizely存储A/B测试数据,Zendesk存储顾客满意度,诸如此类。
为什么这是相关的呢?如今每个商业部门都有强大的数据库,由数据专家分析并用于预测分析。数据量很大,却零散地分布在多个应用之中。比如说你在SugarCRM 中查看某个消费者的信息,但是当你想知道这名顾客的服务记录时,需要去ZenDesk中查看。而如果你想要知道他是否支付了最近的账单,则要去查Xero。所有的数据都被存放在不同的地点,网站和数据库中。
商业数据被转移到了云端,可以存放更多的数据了,但是这些数据被零散地存放在全世界的不同服务器的不同应用里。
第三方数据
第三方数据出现得比结构化和非结构化数据库都早得多。Dun & Bradstreet从1841年就开始卖数据了。随着数据对每个机构都愈发重要,这个领域也将会获得长足的发展。
在数据库生态系统图中,我大体把第三方数据分成四个领域,分别是商业信息数据,社交媒体数据,网页爬虫和公开数据。
商业信息数据开始最早。我上面提到了Dun & Broadstreet,商业数据购买对许多商业机构来说都至关重要。商业数据能回答所有B2B公司至关重要的问题:我们的销售团队该找谁谈?如今,这些数据更被扩展应用至网上地图和高频交易等领域。新创的数据卖方如Factual,不仅售卖商业数据,更倾向于从这些高盈利的新型领域起步。
社交媒体数据虽然是新兴产物,但发展很快。通过智能PR公司对社交媒体中的文本作情感分析,营销人员能够切实地了解到品牌热度与影响力,并有效评估品牌价值。你可以从Radian6 和DatSift里看到全部细节。
接下来我们来看看网络爬虫,我个人认为这是一个很有发展潜力的领域。如果能够把所有网站都作为数据源,由数据科学团队发展和分析,真不知道还有多少新型商业和技术会由此而生。如今从事网络爬虫的重要公司包括 import.io和kimono,我认为这个领域将在接下来几年呈现爆炸式的增长。
最后,当然还要提及公众数据。如果没有数据专家团队的支持, 不知道奥巴马总统是否还能够赢得2004年的大选,这可能也是后来奥巴马大力推动 Data.gov 的原因。许多地方政府也紧随其后。亚马逊网络服务 存放了许多惊人的公众数据,囊括从卫星图像到安然公司的邮件等各个方面。这些庞大的数据系列可以帮助扩大新型商业,训练更智能的算法,并解决许多实际问题。这个领域发展快速,甚至出现了 Enigma.io 这种专门帮助企业使用公众数据的公司。
开源工具
开源数据储存的种类激增,尤其是在非结构化数据的存储方面,Cassandra, redistribute, Riak,Spark, CouchDB 和MongoDB 等都大受欢迎。它们多数专注于公司应用,另外也着重于数据工程的生态系统。通过这个交互式地图 你将可以一睹最受欢迎的开源数据存储及开采工具的概貌。
第二部分:数据处理
最近,福特汽车的数据专家迈克尔·卡瓦雷塔在纽约时报上提到了数据专家在日常工作中面临的挑战。卡瓦雷特说:“我们真的需要更好的工具来减少处理数据的时间,来到达‘诱人的部分’。”数据处理包括清洗数据、连接数据并把数据转化成可用的格式;“诱人的部分”则是数据预测分析和建模。前者有时被称作是“看门的工作”,可见前后两者哪个处理起来更有乐趣了。
在我们最近的调查中,我们发现数据专家需要实打实地花费80%的时间来处理数据。数据专家的工资如此之高,可进行数据处理的公司还那么少,实在令人惊讶。
在上一部分中,我提到结构化数据库起源于财务或经营要求,而非结构化数据库则是被数据专家推动发展的。数据领域的发展过程也是如此。结构化数据库是一个很成熟的行业了,有足够的工具形成金字塔供财务和经营人员使用。然而对于需求更加灵活的非结构化数据库,则需要一套新的工具供数据专家使用。
先从我熟悉的领域说起吧。
数据强化
数据强化是对原始数据的提升。最初的数据来源可能很混乱,格式不同,出处不同(如此之类),很难甚至完全无法对其进行预测分析。数据强化对数据进行清洗,大大减少了数据专家在这一部分花费的时间。
我把数据强化分为“人工的”和“自动的”两类,但实际上两者都需要人和机器的参与。人工数据强化是把所有的原始数据都用人工转化,不过这需要大量的电脑自动化来保证其可靠。同理,自动数据强化通过许多规则和脚本来转化数据,但是需要人工来设立和检查这些规则。
人工数据强化的基础在于,有些任务确实人做起来比机器更简单。比如图片识别吧,人类可以轻易看出一个卫星图片是否含有云状物,可机器识别起来却十分困难。
语言则是另外一个人工数据强化派上用场的地方。自然语言处理的算法可以做很牛的事情了,不过仍然没有办法像人那样区别挖苦讽刺或粗话。所以你会看到PR公司和营销人员都会人工来分析这些情感。
人工数据强化还可以用来训练搜索算法,而且人能比机器更好地阅读和收集完全不能比较的信息。再次强调,这需要任务被设立好,软件能做很好的质量控制。但是如果能有数以千计的人,协力一起来做人比机器能完成得更好的简单任务,你就能以极快的速度来完成数据强化。 CrowdFlower和WorkFusion,以及部分Amazon Mechanical Turk都在做这部分的工作。
自动数据强化和人工数据强化的目标相同,但是是由机器(而不是人工)通过脚本来把原始数据转换成可用数据。正如上文提到的,你还是需要一个厉害的数据专家来输入那些信息,并在转化完成后检查。如果数据格式统一,自动数据强化还是很强大的。只要有好的脚本,含有少量错误和不完全连贯的数据几乎能立即转换成可用数据。
自动数据强化甚至能够有效地清洗数据,只要这个过程不需要人参与。从规定姓名和日期格式等简单任务,到从网络上有效抓取元数据等复杂任务,都是自动数据强化的典型例子。Trifacta、Tamr、Paxata和Pantaho 等都提供了很好的自动化解决方案。公司们都希望能够把一些宝贵的时间还给他们的数据科学家,因此自动数据强化也是正在快速发展。
ETL/混合
ETL表示提取 (Extract),转换(Transform) 和加载 (Load),显现了这一部分的数据生态系统的核心。本质上,ETL/混合解决方案是帮助数据专家匹配不相似的数据,以做分析之用。
举个例子,比如说你有一个财务数据库,包含了你的消费者、支付金额和购物种类明细,并被储存在一个地方。而你同时还有另一个数据库包含了消费者地址。ETL/混合领域的工具帮助顾客把它们合并成一个单一且可用的数据库,由此数据专家便可以探索一些新的方面,比如某个特定商品在哪个地区消费最多,或者哪个地方会是你的目标市场,等等。
以上只是一些简单的例子;实际情况可能复杂得多。不过基本上每个数据专家的日常工作中都包含了数据混合。通常数据来源不同,格式也会不同。如果需要一览全面信息,混合整理这些数据源是必不可少的。
Alteryx、Astera、CloverETL 和etleap 都开发了可以混合这类数据的软件。而ETL虽然早在结构化数据库出现之时便有了,但由于越多数据源也意味着更多的格式不一,ETL的重要性现在越发显现出来。无论何种数据分析,大数据的前景都依赖于全局与细节分析的全面结合。
数据整合
数据整合与ETL/混合有不少重合之处,它们都是要对数据进行整合。不过数据整合更多是按照应用的需要把数据统一成某个特定格式(而不是进行一般的混合)。
回想一下我在上一部分提到的第三方数据云应用,是如何全面覆盖销售和营销数据,以及社会研究和邮件管理的。怎么才能把这些应用都合并到一个可用的数据集,让数据专家可以据此做预测分析呢?ClearStory、Databricks 和SnapLogic 等软件便可助你实现。
Informatica 已经从事数据整合多年,并获得了超过十亿美元的收入。我虽把它放在了数据整合的部分,但它其实对数据处理的各个领域都有所涉及。微软也提供了两项数据整合服务:Azure数据工厂和SQL服务器整合服务。
类似于ETL/混合工具,数据整合项目主要是混合数据生态系统图左边的数据,使其可以通过图中右边的软件建模。也就是说,数据整合工具(如Apatar 或 Zoomdata),可匹配来自云应用(如Hootsuite 或Gainsight)的数据,让你通过Domo 或Chartio 获得商业智能(BI)。
应用程序界面(API)接口
最后,我们谈谈API接口。这些公司不那么着重于数据转化,而是更强调独立的API之间的整合。这类公司一旦兴起,实在是前途无量。
这些工具一旦用对了地方,是很好很强大的。从一个没什么技术含量的例子说起吧,IFTTT 应该能帮大家理解API接口是怎么一回事。IFTTT 表示“如果这样,则那样”(“if this, then that”),人们通过它,可以把发到Instagram的图片马上保存到Dropbox或发上Twitter。IFTTT就是一个非数据的专家在协调在线工作时使用的API接口。我把这个例子包含进来,是因为许多数据专家也会在私底下或工作中稍微使用到它。
Zapier 和IFTTT类似,不过着重于商业应用,所以也更受数据专家欢迎。
MuleSoft 则是一个能把所有商业应用都连接起来的接口。比如说一个用户登录你的网页,谁需要知道这个信息?你的销售团队需要这个信号吧?你的运营团队需要知道那个用户什么时候再次登录吧?营销部门需要知道他们的邮件营销活动的成果吧?一个简单的API接口就可以同时触发这些通知了。
最后,Segment.io 能把你的产品连接到许多这个生态系统图左边的SaaS商业应用及其他应用。
API接口的存在,正是因为数据专家要使用数据生态系统中的那么多工具来混合和整合数据,可是这些工具又不是全部为数据专家设计的。
开源工具
用于数据处理的开源工具,远比用于数据存储和数据分析的少。Google开源了他们非常有意思的open-refine项目。多数时候,公司会在Python上建立他们自己的专属工具;而Kettle 作为一个开源的ETL工具,用户也越来越多。
第三部分:数据应用
还记得我在第二部分开头的引用吗? 关于数据专家想要更好的数据处理工具,让它们可以直接处理“诱人的部分”那句话。好的,在介绍了数据存储方式,数据清洗和整合,我们终于来到这一步了。数据应用正是这个“诱人的部分”,包括预测分析、数据挖掘和机器学习等等。到了这个步骤,我们将会用上这些所有的数据,做出惊人的东西来。
大体上,我把这一列拆分成两个分支:数据洞悉和建模。数据洞悉是你从数据里得到些东西;而建模则是你通过数据建立些东西。数据专家用它们来解释过去和预测未来。
我们先从数据洞悉谈起。
数据洞悉
我把这些工具分成四类,分别是统计工具、商业智能、数据挖掘和数据合作。前两类里,很多成熟的大型工具已经被使用了数十年了。数据挖掘和数据合作虽然不是新鲜出炉,不过市场还不够成熟,我预计将会随着越来越多的机构重视数据而急剧增长。
统计工具用于专门的分析,数据专家可用它们来做回归分析,并把数据视觉化成一个人们更容易消化的模式。提到统计工具就不能不提微软的Excel了,数据专家、分析师以及使用电脑的每一个人都在用它。虽然有明显缺陷,但是Excel还是数据专家最好、最原始和最强有力的工具之一,他们用Excel做了很多厉害的事情。事实上,CrowdFlower的最新数据科学工具调查中我们发现,Excel仍是数据专家们使用最多的工具。
除了顶梁柱Excel,还有很多其他统计工具。R语言 就是一个很受欢迎的数据分析工具,里面还包含了一个巨大的开源统计包。Tableau 则是一个很好的数据视觉化程序,被商务、学术和媒体人士广泛使用。Mathworks公司的Matlab是一个自有的工程平台,用户不仅能用它创建图表,还能建立和优化算法。SPSS 和Stata 都已存在了几十年,被用于大批量数据的复杂分析。
商业智能本质上是用于创建干净的互动界面系统报表(Dashboard)和提取指标的统计工具。它们把复杂的数据翻译成易读易懂的形式,那你公司里的非技术人士也能看明白了。互动界面系统报表(Dashboard)能把重要的数据浮上来,非数据的专家也能基于自己的经验使用这些数据。Gartner把这个定位为一个140亿美元的市场,老牌大牛 SAP,Oracle和IBM是商业智能领域最大的公司。Domo 和Chartio把各种形式的数据源连接起来,创建出了各种好用、有人气的互动界面系统报表(Dashboard)。数据专家可以用这些工具来向他们机构的利益相关者展示机构的经营情况。
商业智能着重于把数据提取成易读易懂的互动界面系统报表(Dashboard);数据挖掘和探索则用于洞悉大型的数据,也更是上文数据专家所指的“诱人的部分”。这些公司不仅要展示数据,更要在数据的基础上建立一些可行的东西。
和我在第一部分中写到的第三方应用不同,这些商业智能工具通常末端是很开放的,可以被用于很多不同的机构,从政府到金融到商业皆可。比如说,用Palantir 来建立解决方案,从企业网络安全,到施法数据库同步,到疾病反应,无一不可。这些工具可以用来整合和分析数据,而且通常一旦由数据专家设置好后,机构里地任何一个人都可以像一个微数据专家一样使用这些工具,输入剖析数据并寻找趋势,促使其部门获得成功。Platfora 是商业智能的一个很好地例子,还有很多其他将会雨后春笋般涌现。
数据洞悉的最后一部分是数据合作。当公司的数据科学团队越来越大,数据合作也将可能变得愈发重要。如果开放数据在今后成为新的开源(我认为这是必然的),Mode Anaytics 等工具将会变得更加重要。数据专家可以通过Mode把它们基于SQL的分析分享和报告给他们机构内外的任何一人。Silk 是一个强大的视觉化工具,用户可以用它来上传数据和创建一系列可过滤的图表、地图和表格。R studio 给数据专家提供了很多制作专业小应用的工具,这些小应用能在团队内部分享,帮助非数据型的专家调查数据。有那么多辅助数据合作的公司涌现,可见数据科学不是正在发展,而是几乎已经无处不在了。
再强调一下,这里是没有什么硬性的划分的。很多这些工具也被非数据型的专家使用,用来创建dashboards或辅助实现可视化。但这些工具都是基于获取数据,并从数据那里得到些东西。而我们的下一个章节“建模”,就有点不同了,是讲关于“建立”的。
建模
我要大声呐喊着进入这个章节。其中最鼓舞人心的项目是Shivon Zills 超牛的机器智能一览图,我提到它是由于建模和机器学习是有很多交集的。Shivon这个制图及分析异乎寻常的深刻,很值得有兴趣的读者一读。
建模是关于预测和学习的。换言之,就是获取数据集,并预测接下来会发生什么;或者通过已标注的数据训练一套算法,用来标注更多的数据。
预测分析型的建模更着重于回归分析。这些工具不仅简单地回归数据、合并或清洗数据,更重要的是根据历史数据和趋势,对未来做出高精度的预测。比如说,可能有一个巨大的数据集,能把人的信用评分和众多的人口统计学细节匹配起来。你就可以通过预测分析,根据某个申请人和你模型中的人口统计学信息异同,来评断他的信用值。从政治选举主管决定何时何地进行拉票,到能源公司根据当地能源使用的峰值与低值作出计划,各个方面无不需要预测分析。
现在已经有很多公司提供预测分析的工具了,还有一大波正在袭来。Rapid Insights 帮助它的顾客通过回归分析洞悉数据集。Skytree主要用来分析非常大的数据集。Numenta 等公司在创造能持续学习、且能在运行数据时捕捉到重要可行的模式的机器。不过基本上,它们都是用来获取数据、分析并通过这些信息来精彩地预测事件的。
深度学习则更像一项技术,而不是解决方案。深度学习现在大热,因其能提供精确得多的模型,尤其是在有大量数据用来训练的时候。深度学习似乎对图像最为有用,因此许多做深度学习的公司都是从图像起家的。事实上Facebook很早就在训练面部识别算法上取得了一定的成就(是就面部本身识别,而不是通过朋友圈的重叠和关系来猜测谁是谁)。Metamind 提供了一个深度学习的小平台,每个人都可以用起来。Dato 包含了数据生态系统中的许多其他功能,比如ETL和可视化。
自然语言处理工具(NLPs, Natural Language Process tools) 尝试建立算法来理解真实的话语。机器学习此处包括训练算法来识别文本的细微差别(而不仅是定位关键词),这意味着,可以识别俚语、讽刺、拼写错误、感情和所有真实演讲的一些奇怪的地方。要建立起这些工具,需要极其庞大的数据量,但是NLP有潜力减少许多用于文件处理、文字记录和情感分析的成本和时间。这些工具各自都有巨大的市场。
可能流行文化里最出名的NLP实例就是Watson的Jeopardy!了。这其实是一个很非结构化的例子。想想Jeopardy!线索的叙述方式吧,双关语、俏皮话和各种精妙的表达无所不包。Jeopardy!能理解这些线索,水平还远超其竞争对手,真是令人惊叹。而那还是2011年的事了;NLP自那以后便开始飞速发展。Attensity 等公司的NLP解决方案主要用于不同的产业领域;而Maluuba 等公司 则主要面对客户,实际上相当于语言理解方面的个人助理。Ibibon 主要针对非英语语种,虽然有时被忽视,但是这个市场其实很重要。我认为在接下来的十年左右,NLP会有很大的发展,这些工具将有机会给数以百计的产业带来变革。
最后,简单介绍一下机器学习平台。上面提到的工具多用于管理服务,而机器学习平台却很不一样。Kaggle一类的工具,与其说是一个具体的产品,不如说是一个公司,把数据筛出来,让数据专家们竞相创造出最优算法(有点像我在第一部分提到的Netflix prize。微软的Azure ML和Google的Prediction API都属于这类工具,因为它们都和Kaggle一样,能处理一系列的数据问题,而不仅限于某些特定领域。Google的Prediction API提供一个黑盒子尝试给输入的数据建模;而微软的Azure ML则给数据专家们提供一个工具箱来整合数据块,并建立机器学习的工作流程。
开源工具
也许是因为这个开源工具目前有最多前沿研究,开源建模和洞悉工具都非常多。R 既是编程语言,又是一个数据探索的交互环境,是很多数据专家的一个基本工具。Octave 是一个Matlab的一个免费开源端口,非常好用。Julia 在技术计算中的应用日益广泛。斯坦福有一个NLP 开源库 , 包含了大多数标准语言处理工具。Scikit 是一个用于Python的机器学习包,拥有大多数标准建模和机器学习的算法,已经越来越有影响力。
总的来说,数据应用工具使得数据专家对各种机构来说愈发重要。正是通过这些工具,数据专家可以提出强有力的建议、揭露隐藏的趋势并提供切实的价值。当然了,这些工具能派上用场的前提是要有好的数据,以及之前的数据强化、混合和清晰过程。
因此,我选择把这些工具称作是一个生态系统,而不仅仅是一个图景。数据来源和数据处理是数据洞悉和建模的前提。我们宁愿用很好的数据做平庸的分析,而不是用平庸的数据做很好的分析。当然啦,运用得当的话,数据专家是可以用很好的数据做很好的分析的,这时数据专家的价值就无与伦比了。
Crowdflower首席执行官 Lukas BieWald 访谈多位美国数据科学家整理后发表于Crowdflower的博客,为帮助大家更了解美国大数据产业的发展现况,经作者同意后翻译并转载。
本文采用「CC BY-SA 4.0 CN」协议转载自互联网、仅供学习交流,内容版权归原作者所有,如涉作品、版权和其他问题请给「我们」留言处理。