首页 > 大数据 > 正文

深解读:什么是数据科学?如何把数据变成产品?

2016-05-18 17:15:59  来源:36大数据

摘要:一个数据应用从数据里获取价值,同时创造更多的数据作为产出。它不只是带有数据的一个应用,它就是一个数据产品。而数据科学则是能创建这样的数据产品。
关键词: 大数据

 
  那么,我们怎么能让数据有用?任何数据分析项目的第一步都是“数据调节”,即把数据变换成有用的状态。我们已经看到了很多数据的格式都是易用的:Atom数据发布、网络服务业务、微格式和其他的新技术使得数据可以直接被机器消费。但是老式的“屏幕抓取”方法并没有消亡,而且也不会消亡。很多“非正规”数据源来的数据都是很混乱的。他们都不是很好构建的XML文件(并带有所有的元数据)。在《在R里做数据聚合》里使用的房屋抵押赎回权数据都是发布在费城郡长办公司的网站上。这些数据都是HTML文件,很可能是从某个数据表格文件里自动生成的。如果曾经见过这些由Excel生产的HTML文件,你就知道处理这个会是很有趣的。
 
  数据调节也包括用类似Beautiful Soup这样的工具来清理混乱的HTML文件,用自然语言处理技术来分析英语和其他语言的纯文本,或用人工来干苦活和脏活。你有可能会处理一系列数据源,而他们各自的格式都不同。如果能有一个标准的工具集来处理这些就太好了,可实际上这是不现实的。为了做数据调节,你需要准备好处理任何的数据格式,并愿意使用任何的工具,从原始的Unix工具(如awk)到XML语义分析器和机器学习库。脚本语言,比如Perl和Python,就很重要了。
 
  一旦你分析了数据,就可以开始思考数据的质量问题了。数据经常会有缺失和不一致。如果数据缺失了,你是要简单地忽略他们吗?这也不总是可以的。如果出现数据不一致,你是否要决定某些表现不好的数据(是设备出错了)是错的,或者这些不一致的数据恰恰是在讲述它自己的故事,而这就更有趣。有报道说,臭氧层消耗的发现被延误了,因为自动数据收集工具丢弃了那些数值过低的读数1。在数据科学里,你能有的经常是你将会拿到的。通常你不可能得到更好的数据,你可能没有其他的选择除了使用你手头有的数据。
 
  如果研究的问题涉及到人类的语言,那理解数据就又给问题增加了一个维度。O’Reilly的数据分析组的主管罗杰.马古拉斯(Roger Magoulas)最近在为苹果公司招聘公告列表搜寻数据库,这需要有地理位置技能。这听起来像是个简单任务,这里的坑就是从很多招聘公告列表里去发现真正的“苹果”的工作,而不是那些大量增加的苹果附属的工业企业。为了能更好的完成这个任务,就需要能理解一个招聘公告的语法结构,即你需要能解析英语语义。这样的问题已经变的越来越常见。比如你试着去用谷歌趋势(Google Trend)去查看Cassandra数据库或者Python语言正在发生什么,你就能感受到这个问题了。因为谷歌已经为很多关于大型蛇类的网站建立了索引。歧义消除从来都不是一个简单的任务,但是类似于Natural Language Toolkit这样的库可以让这个工作简单一点。
 
  当自然语言处理失效时,你可以用人的智能来代替人工智能。这就是类似亚马逊的Mechanical Turk这样的业务所服务的目标。如果你能把你的任务分解成非常多的容易表述子任务,你就可以使用Mechanical Turk的市场来招募很便宜的工人。例如,你想查看招聘公告列表并发现哪些是真正来自苹果公司,你可以招募工人来做分类,价格大概是一美分一个公告。如果你已经把这个列表的数目降到一万条有苹果字样的公告,那么只要付100美元就可以让人工来分类了。
 
  处理海量的数据
 
  我们已经听说了很多的“大数据”,但是“大”只是转移注意力的话。石油公司、电信公司和其他数据密集型的行业早就已经在相当长的时间里拥有了海量的数据集。伴随着存储能力的持续增长,今天的“大数据”肯定会变成明天的“中数据”或者日后的“小数据”。我所听到的最有意义的定义是:“大数据”是指数据的量本身成为问题的一部分。我们讨论数据量的问题可从吉字节级到千吉字节不等,在某些时刻,传统的数据处理技术已经不能胜任了。
 
  面对这样不同的数据,我们正试图做什么?根据杰夫·哈默巴赫尔(Jeff Hammebacher)2所说,我们正在构建信息平台或数据空间。信息平台和传统的数据仓库类似,但不同。他们暴露了很丰富的API(应用程序接口),并被设计为用来支持探索和分析理解这些数据,而不是只为传统的分析和报表。这些平台接收所有的数据格式,包括最混乱的那些,他们的数据模式随着对数据理解的改变而不断进化。
 
  大部分构建数据平台的企业都发现很有必要超越传统的关系型数据库。传统的关系型数据库系统在到一定数据量级后开始效率降低,甚至无效。管理在一群数据库服务器间分享和复制数据是很困难的,且很慢。同时关系型数据库需要预先定义好数据模式,而这与多数据源的非结构化数据现状是冲突的,因为你甚至都不知道什么是最重要的直到你开始分析数据。关系型数据库被设计来满足一致性的,这是为了支持复杂的交易过程,以便于当交易过程中的任何一个环节出错时,可以很方便的回滚。尽管严格一致性对于很多应用是很重要的,但这对于我们这里所谈论的分析任务并不是完全必须的。你真的会在乎是有1010个或者1012个推特的关注者?精确是很诱人的,但是对于绝大部分金融领域以外的数据驱动的应用,精确是个伪命题。大部分数据分析都是比较性的,如果你想知道是否东欧地区的销售增长比南欧地区快,你并不关心这个差别是5.92%年增长,还是5.93%。
 
  为了能有效地存储数据,出现了不少新型的数据库。他们经常被叫做NoSQL数据库,或非关系型(Non-Relational)数据库,尽管两个名词都没什么用。这些名词把本质上完全不同的产品归到一类里,但其实只说明了他们不是什么。很多的这些数据库都是谷歌的BigTable和亚马逊的Dynamo的后代。它们被设计来实现分布于多节点,并提供“最终一致性”而不是绝对一致性,同时也支持非常灵活的数据模式。尽管有多达二十个这样的数据库产品,大部分都是开源的,只有少数几个已经在业界确立了他们的地位。
 
  Cassandra:由脸书开发,已经在推特、Rackspace、Reddit和其他大型网站的生产系统上使用。Cassandra被设计成高性能、高可靠性和可自动复制。它有一个非常灵活的数据模型。创业公司Riptano提供对它的商业化支持。
 
  HBase:是基于谷歌的BigTable,并变成Apache Hadoop的一个子项目。设计用于极大的数据库(超过十亿行、百万列),分布式存储于上千个节点。它跟Hadoop一起,可由Cloudera公司提供商业化的支持。
 
  存储数据只是构建数据平台的一部分,数据的价值只有在被使用后才能出现,而巨大的数据量又带来了新的计算难题。谷歌让MapReduce方法变得流行。MapReduce方法本质上是一种分而治之的策略,用以处理在一个超大的集群上的超级大的问题。在“Map”阶段,一个单一的计算任务被分成了众多的相同的子任务,然后这些子任务被分配到很多的处理节点上运行。子任务产生的中间结果随后被汇聚,交给Reduce任务们来处理。事后看,MapReduce任务似乎是对于谷歌的最大的问题(建立大的搜索引擎)的一个显而易见的解决方案。很容易把一个搜索分布到上千个节点里,然后在把结果汇聚成一个单一的答案。没有那么显而易见的是MapReduce已被证明对于很多大型数据的问题都可用,不管是搜索还是机器学习。
 
  最流行的MapReduce的开源实现是Hadoop项目。雅虎宣传他们已经构建了世界上最大的生产Hadoop集群,有一万个CPU内核,运行在Linux上。很多Hadoop开发者也认可了Cloudera的商业版Hadoop。亚马逊的Elastic MapReduce是在亚马逊的EC2集群上提供了预先配置好的Hadoop镜像文件,这让部署Hadoop非常简单,也不用客户自己购买Linux服务器。客户可以按需增加和减少处理器,而只需按使用时间来付费。
 
  Hadoop已经远远超越了单纯的MapReduce的实现,他是一个数据平台的核心部件。它包括了HDFS,一个保证高性能和可靠性需求的超大数据分布式文件系统;HBase数据库;Hive,一个可以让开发者使用类SQL的查询来探索Hadoop数据的工具;一个叫Pig的高级数据流语言;以及其他很多的部件。如果有任何的东西可以叫一站式信息平台,Hadoop就是一个。
 
  Hadoop被设计成了可以支持“敏捷”数据分析。在软件开发领域,“敏捷实践”是与快速产品开发周期、开发者和用户的更紧密的交互、并与测试相关的。传统的数据分析已经被异常长的运行时间所耽搁,一个计算可能在几小时或者几天内都无法完成。但是Hadoop(特别是Elastic MapReduce)让构建一个可以处理超大数据集的集群成为可能。快速的计算使得测试不同的假设、不同的数据集和不同的算法成为可能。这就让跟客户的沟通变的容易了,因为可以快速的发现你是否问了正确的问题。同时也让探索那些有趣的可能性成为可能,而不再受限于分析时间了。
 
  Hadoop本质上是一个批处理系统,但是Hadoop在线原型(HOP,Hadoop Online Prototype)是一个实验项目,来应对流计算。HOP在数据到来的时候就处理数据,并以准实时的速度算出中间结果。准实时数据分析可以应用在推特的话题趋势追踪这样的应用里。这样的应用只要求近似实时,比如话题趋势追踪的报表不会需要毫米级的准确度。像推特上的关注者的数目一样,一个“话题趋势”报表也只需要能在五分钟内更新即可,甚至是一小时内。据bit.ly的数据科学家希拉里.梅森(Hillary Mason)所说,也可以先计算很多的变量值,再使用实时MapReduce来计算最近的结果。
 

  机器学习是数据科学家的另外一种重要的工具。我们现在期待网络和移动应用会结合推荐引擎。而构建一个推荐引擎是人工智能问题的精华之一。不用看很多的网页应用,你就能发现分类、错误检测、图像匹配(如在谷歌眼镜和SnapTell里)甚至是人脸识别。一个不动脑子的移动应用可以让你用手机来给某人拍照,然后在用这张照片来在搜索这个人的身份。吴恩达(Andrew Ng)的机器学习课程是斯坦福大学的最流行的计算机课程之一,有着数百名学生(他的这个视频也是强烈推荐的)。
第四十一届CIO班招生
国际CIO认证培训
首席数据官(CDO)认证培训

责编:pingxiaoli

免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。