专家解读数据科学

日期: 2013-01-29 作者:Mikio Braun 来源:TechTarget中国 英文

数据科学”这个词汇在几年前开始出现,并且持续受到关注。那么,它到底是什么?

  首先,事实上并不存在所谓的“数据科学”,没有一门学科叫“数据科学”,您不可能到大学里攻读数据科学。另一方面,我又认为世界上存在所谓的数据科学家。每当我遇到一位自称为数据科学家的人时,我就会想:我自己的履历可能也符合他的职业描述。那么,数据科学家到底是什么工作呢?

  在我看来,“数据科学”这个词汇描述了基于Web技术的公司中特定组合的需求,代表着一个特定的角色,这些公司会收集大量的数据,然后再设法利用这些数据。谷歌很可能就是第一家通过数据分析算法而获得成功的公司。他们的PageRank算法能够以相同的时间(甚至更快速)搜索出比其他搜索引擎更精准的搜索结果,这体现了数据分析的价值。同时,媒体接受了“数据科学”这个词汇,它感觉就像是“火箭科技”,当然也接受了“大数据”等词汇,然后新一轮的炒作热点就出现了。

  按照我的理解,一名数据科学家是通过开发数据分析解决方案而为公司创造价值的人,他能够为商业增加价值,并且能够在生产环境中实现这些解决方案。

  当然,并没有谁突然间发明了全新的数据处理方法。在一定程度上,您收集数据,用于支持或反驳自然假定,然后这种科学就是“数据科学”。我认为,至少有三个不同的传统领域构成了现在所谓的数据科学:

  • 统计学家。特别是计算统计学家,他们在最近一两个世纪以来一直在处理数据。
  • 机器学习专家。从上世纪60年代出现人工智能开始,他们就长期致力于挖掘数据价值。
  • 数据挖掘与信息检索专家。在最近几十年,他们一直研究如何使用数据库系统,从中提取有意义的信息。

  在我看来,数据科学的新东西很大部分在于应用领域及所需要的专业技术水平上。数据科学家主要处理社交网络链接形式的数据、点击数据或某种用户行为与交互所生成的数据。所以数据并非像统计学一样来自一些物理、生物或社会实验,而只是作为业务一部分收集得来的数据。

  数据科学家还需要考虑如何在生产环境中以实时方式执行这类分析。如果您必须处理超大容量数据(“Web规模”)和保证以近乎实时速度更新数据,那么这将是一个非常大的挑战。

  面对这两个要求,上述三类专业人员作为数据科学家也会各有不同(我在这里只是概述,大可不必对号入座)。

  • 统计学家有非常好的分析方法知识,这能够用于处理复杂数据。他们非常了解如何进行随机数据与流程的建模,这可以产生非常强大的分析方法。另一方面,统计学家在可伸缩性和数据分析技术方面并不出众。统计学家大多使用像R等平台,他们会从各种来源导入数据(CSV文件、数据库、电子表格及其他用于存储数据的文本格式),然后使用大量程序库进行数据分析与可视化。然而,由于类似于R的平台都具有复杂的功能,所以它们不太适合运行在生产环境,规模上也不符合数据容量要求。
  • 机器学习专业人员通常也擅长统计建模,因为统计方法也是设计机器学习算法的主要方法之一。但是,通常机器学习方法也更需要摸索和亲自动手。如果有一些方法能够产生较高预测准确度,那么无论使用的是什么统计方法,机器学习专业人员会更喜欢使用。可伸缩性也是机器学习通常在优化时考虑的一个问题。另一方面,机器学习人员会倾向于考虑矢量空间和线性代数问题,这会在数据库方法造成很大缺口。事实上,我认识的大多数机器学习人员都不操作数据库,而是直接处理包含他们数据的文本文件或其他自定义数据格式。此外,与统计学家一样,机器学习人员会出现在存储且有待分析的数据一线,而不是一个封闭环境中,其中数据学习方法属于较大型系统的一部分,需要持续分析数据。
  • 数据挖掘人员(至少在我看来)是非常熟悉数据库系统的,但是并不擅长处理复杂数据。数据挖掘人员通常更接近于理论计算机科学家,他们更愿意正式定义一个问题,然后寻找最高效算法去解决问题;而统计学家和机器学习人员会研究如何定义问题,以便处理复杂细节,同时计算环节通常会非常清晰,并且已经解决妥当。

  所有这些人员都具备数据科学家的条件,但是只有投入时间学习各自领域之外的东西,他们才有可能成为真正优秀的数据科学家。

  所以,总结一下,下面是数据科学家应该掌握的能力:

  • 理解公司业务,通过分析数据而开发出创造价值的新方法。
  • 基于统计学、机器学习、数据挖掘、信息检索、自然语言处理等技术状态,开发出一种分析方法。这可能需要扩展或调整现有方法。
  • 使用R、scipy或matlab等平台实现一种方法原型。虽然这些平台可能并不适合生产环境,但是它们是一个很好的试验概念和处理数据的场所。
  • 将这种方法转移到一个生产环境。这通常意味着需要用Java、C#或另一个“服务器级”语言实现(IMHO Python或Ruby在这里并不符合要求)。
  • 使用任意一种最新集群技术设计一些途径去扩展这种方法,例如,NoSQL数据库、流处理框架、消息传递、MapReduce等。
  • 创建一些方法监控系统,使之在生产环境中正常运行。具体操作可能最后会交给其他人,但是由于这些系统通常都是定制的,因此人们还必须开发一种特殊的监控系统。

  正如您所了解的,您必须掌握大量知识,深刻理解数据分析方法,紧跟一些快速发展领域,如可伸缩存储和集群技术。但是对我个人而言,这恰恰是数据科学最具吸引力的地方。

  关于更多信息,我在delicious.com网站上建立了一个数据科学页面收藏栏,其中包含一些数据科学相关文件和博客链接,欢迎参阅。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐