欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

伪数据科学家 VS 真数据科学家

程序员文章站 2022-07-03 11:37:40
R语言编程跟伪数据科学为何扯上了关系? R是一种有20多年历史的开源统计编程语言及编译环境,是商业化产品S+的后继者。R一直以来都局限于内存数据处理,在统计圈子里非常流行,并因其出色的可视化...

R语言编程跟伪数据科学为何扯上了关系?

R是一种有20多年历史的开源统计编程语言及编译环境,是商业化产品S+的后继者。R一直以来都局限于内存数据处理,在统计圈子里非常流行,并因其出色的可视化效果为人称道。一些新型的开发环境通过创建R程序包或者将其扩展到分布式架构里(比如将R与Hadoop结合的RHadoop),将R(限于在内存里处理数据)的能力扩大。其他程序语言当然也存在跟伪数据科学沾边的情况,比如说SAS,但不及R这么流行。说到SAS,它价格高昂,在*机构或者实体企业的应用更为广泛。但在过去10年数据快速增长的领域(如搜索引擎、社交媒体、移动数据、协同过滤推荐等)运用不多。R跟C、Perl或者Python的语法不一样(后三者语法根源一样),其简易性使得写R的程序员比较广泛。R还有很多程序包和不错的用户界面,SAS却难学很多。

管理决策层在搭建其数据科学家团队时,有时也不是很清楚他们想要的到底是什么。

他们往往最终招募的是很纯粹的技术极客、计算机科学家,或者缺乏恰当大数据经验的人。人力资源部门对于数据科学的了解也不会好到哪里,因此导致更为严重的问题,他们给出的招聘广告就是不断重复类似的关键词:Java、Python、MapReduce、R、Hadoop和NoSQL。

数据科学真的就是这些技能的混合吗?

**MapReduce**只是一个将数据分解为子集,在不同机器上分开处理,并把所有结果集合起来,从而处理大数据的泛化框架。因此它涉及的是处理大数据的分布式框架,用到的这些服务器和设备则组成云(Cloud)。

**Hadoop**是MapReduce的一种实现,就像C++是面向对象编程的实现一样。

**NoSQL**意味着“Not Only SQL(意为不单只是SQL)”,是指能更新颖、更高效地访问(比如MapReduce)数据的数据库或数据库管理系统,有时它是作为SQL(标准数据库查询语言)之下的隐藏层而存在的。

除了MapReduce以外,还有其他框架——例如,图形数据库和环境,它们依赖于节点和边这类概念,来管理和访问数据(通常是空间数据)。这些概念并不一定是新的。在谷歌存在之前,分布式体系结构已被应用到搜索技术环境中了。15年前,我写Perl脚本进行哈希连接(一种NoSQL连接,用来连接或合并数据库中的两个表)。然而,现在一些数据库厂商提供的哈希连接,是SQL连接的一个快速替代品。哈希连接在本书后面还会讨论到。它们使用哈希表,并依赖于名称-值对的形式。我想说的结论是,有时MapReduce、NoSQL、Hadoop、Python(一种优秀的脚本语言,往往用于处理文本和非结构化数据)会被认为是Perl的后继者,但它们根源于几十年前就开发出的系统和技术,只是在过去的10年里变得更成熟而已,但数据科学并不只是这些。

事实上,你可以成为一名真正的数据科学家,且不需要掌握这些技能。NoSQL和MapReduce不是新概念——在这些关键词被创建之前,就有很多人接触到它们。

成为一名数据科学家,你需要以下能力。

敏锐的商业头脑。

真正的大数据专业知识(例如,可以在几个小时内快速地处理一个5 000万行的数据集)。

认知数据的能力。

对模型具有猜疑精神。

了解大数据“诅咒”。

有能力沟通并理解管理人员正在试图解决哪些问题。

能正确评估付你工资所能带来的回报(ROI)或效益提升(lift)。

能够快速地识别一个简单的、健壮的、可扩展的解决方案。

能够说服并推动管理人员,即使不情愿,也要为了公司、用户和股东的利益,转到正确的方向上。

真正热爱数据分析。

成功案例的实际应用经验。

数据架构知识。

数据收集和清理技能。

计算复杂度的基础知识——如何开发健壮的、高效的、可扩展的、可移植的架构。

良好的算法知识。

数据科学家在商业分析、统计学和计算机科学等领域也是通才,比如会掌握这些专业知识:健壮性、实验设计、算法复杂度、仪表盘和数据可视化。一些数据科学家也是数据策略师——他们可以开发数据收集策略,并使用数据来发现可操作的、能对商业产生影响的见解。这就要求数据科学家具有创造性,能根据业务要求,制定分析、提出解决方案。

要理解数据科学,所需的基本数学知识包括:

代数,如果可能的话,包括基本矩阵理论。

微积分入门课程。要掌握的理论不多,只需要理解计算的复杂度和O标记法即可。了解特殊函数,包括对数、指数、幂函数。微分方程、积分和复数不是必要的。

统计与概率的入门课程,要了解随机变量、概率、均值、方差、百分位数、实验设计、交叉验证、拟合度和稳健统计的概念(不需要了解技术细节,而是达到本书介绍的程度即可)。

从技术的角度,要掌握的重要技能和知识有R、Python(或Perl)、Excel、SQL、图形(可视化)、FTP、基本的UNIX命令(sort、grep、head、tail、管道和重定向操作符、cat、cron定时等),以及对如何设计和访问数据库有基本了解。了解分布式系统如何工作和在哪里能发现瓶颈(是在硬盘和内存之间的数据传输,还是在互联网上),这也很重要。最后,要了解网络爬虫基本知识,这有助于获取互联网上能找到的非结构化数据。

伪数据科学的例子

这里有个伪数据科学的例子,说明数据科学家要开展工作,为什么需要遵循标准和最佳实践。这里讨论的例子,并不是说它们是不好的产品——实际上,它们有很多的内在价值——但跟真的数据科学无关。原因有以下两点:

首先,部分统计学家没有参与到大数据革命中。虽然有些人还写了关于应用数据科学的书,但只是重新包装原来的统计课程。

第二,适合大数据集的方法需要变化——按2005年的大数据定义,当有2 000万行数据时,才有资格成为大数据——但2010年后不能再这样划分,因为大数据至少是TB级的。

不少人认为数据科学是统计学的一个新名字,他们把数据科学和伪数据科学,以及2005年的大数据定义与2013年的大数据定义弄混淆了。现代数据也有很大的不同,已经被描述为3个V:速度(velocity)(实时、快速流动)、多样化(variety)(结构化、非结构化,如微博内容)和大数据量(volume)。我会增加真实性(veracity)和价值(value)。

例子:某一本数据科学电子书

查看一所著名大学2012年的数据科学训练手册,书的大部分内容是关于旧的统计理论。这本书用R来说明各种概念。当用逻辑回归处理仅仅1万行数据时,并不是大数据科学,它是伪数据科学。这本电子书全部关于小数据,最后几章例外,在那里你会学到一点SQL(嵌入在R代码中)的知识和如何使用R包从Twitter提取微博内容,且创造出作者所说的词云(它和云计算没关系)。

即使提取Twitter内容的项目也还是小数据,也没有分布式体系结构(例如,MapReduce)。事实上,该书从来没有谈到数据架构。该书的水平是初级的。每章以简单的方式(适合高中学生阅读)简短介绍大数据和数据科学,跟该书实际涉猎的小数据科学不搭,跟项目和技术展示脱节。

也许作者增加了这些简短的段落,是为了可以将他的“R统计”的电子书,重新改名为“数据科学的介绍”。它是免费的、很好的、写得很棒的书,且会使高中学生对统计和编程感兴趣。但它与数据科学无关。