数据科学家与数据工程师
最近看到一篇文章介绍数据科学家和数据工程师的区别,觉得解释的还不错,希望对有兴趣投入数据工作的同学有所启发。
数据科学家和数据工程师的主要区别,可以用ETL和DAD的区别来解释。
● ETL(提取/变换/载入)是数据工程师,还有数据架构师或数据库管理员(DBA)的职责。
● DAD(发现/获取/提炼)是数据科学家的职责。
数据工程师往往把重点放在软件工程、数据库设计、生产环境代码上,并确保数据在来源(在那里它被收集)和目的地之间平稳地流动(在目的地那里通过统计摘要提取和处理,或通过数据科学算法产生结果,并最终转移到源或其他地方)。数据科学家却需要了解数据的流动和如何优化(尤其是使用Hadoop时)。实际上不是优化数据流本身,而是数据处理的步骤,从数据中提取出价值。数据科学家与工程师和商业人员一起工作,定义指标、设计数据收集方案,并确保数据科学流程与企业数据系统(存储、数据流)有效地集成。对于在小公司工作的数据科学家,尤其如此,这也是数据科学家应该能编写可被工程师重复使用的代码的原因。
有时数据工程师也操作DAD,有时数据科学家也操作ETL,但这并不常见,且他们通常是在公司内部才这么做。例如,数据工程师可以做一些统计分析,以优化一些数据库流程,而数据科学家可以做一些数据库管理,以管理一个保存汇总信息的、小型的、本地的私有数据库。
DAD包含以下内容:
● 发现:识别良好的数据源和指标。有时(与数据工程师和业务分析师一起工作),对应该创建的数据提出需求。
● 获取:获取数据,有时通过API、网络爬虫、互联网下载或数据库,有时是从内存数据库获取数据。
● 提炼:从数据中提取信息,做出决策,增加投资回报率,并采取行动(比如,在自动投标系统中,确定最佳的投标价格)。它包括以下内容。
— 通过创建数据字典和进行探索性分析,对数据进行探索。
— 清洗数据杂质。
— 通过数据汇总进一步提炼数据,有时是通过多层汇总或分层汇总来 实现的。
— 对数据进行统计分析(有时会采取像实验设计这样的做法,所以在前面的“获取”阶段也可以进行),自动和手动都可以。可能需要设计统计模型,也可能不需要。
— 在某些自动过程中呈现结果或集成结果。
数据科学是计算机科学、商业工程、统计学、数据挖掘、机器学习、运筹学、六西格玛、自动化和行业知识的交叉点。这些不同的领域,加上业务的愿景和行动,汇集了一系列的技术、流程和方法。数据科学是连接不同组件的过程,有助于业务优化,并消除那些降低业务效率的孤岛。它也有自己独特的核心,(例如)包括以下主题:
● 高级可视化。 ● 分析即服务(AaaS)和API服务。 ● 大规模数据集的聚类与分类。 ● 计算大数据的相关性和R平方。 ● 任何数据库、SQL或NoSQL都应该有的11个特征。 ● 快速特征选择。 ● Hadoop/Map-Reduce。 ● 网络拓扑。 ● 大数据中关键词的相关性。 ● 在常规空间、超平面、球面上或单纯形上的线性回归。 ● 无模型置信区间。 ● 特征的预测能力。 ● 无模型的统计建模。 ● 大数据“诅咒”。 ● MapReduce不能做的事。
请记住,一些雇主寻找的是具备丰富统计知识的Java或数据库开发人员。这些开发人员是非常罕见的,所以雇主反而有时会试图雇用数据科学家,但希望他在开发生产代码方面很优秀。所以职位到底是需要具备统计知识的Java开发者,还是具有较强的Java技术的统计学家,你应该事先询问雇主(如果可能的话,在电话面试的过程中去询问)。然而,有时招聘经理不知道他真正想要的是什么,如果你告诉他你的专业知识所带来的附加价值,你可能会说服他雇用你,哪怕欠缺他们预期的某些技能。对于雇主,招聘Java软件工程师,再要他们学习统计学,比反过来更容易。
数据科学家与统计学家
许多统计学家认为,数据科学是关于分析数据的,但它远不止分析数据。数据科学还涉及实现算法、自动处理数据,并提供自动化的预测和行动,比如:
● 分析美国宇航局的照片,以寻找新的行星或小行星。 ● 自动报价系统。 ● 自动驾驶(飞机和汽车)。 ● 在Amazon.com或Facebook上推荐书和朋友。 ● 针对所有酒店客房的客户定制(实时)定价系统。 ● 在计算化学中模拟用于癌症治疗的新分子。 ● 流行病的早期检测。 ● (实时)估计美国所有房屋的价值(Zillow.com)。 ● 高频交易。 ● 为用户和网页匹配谷歌广告,以最大限度地提高转化率。 ● 为所有谷歌搜索返回高度相关的结果。 ● 信用卡交易评分(欺诈检测)。 ● 税收欺诈检测与恐怖行为检测。 ● 天气预报。
所有这些都涉及统计科学和TB级的数据。大多数做这些类型的项目的人,并不称自己为统计学家。他们称自己为数据科学家。
几个世纪以来,统计学家一直在收集数据并进行线性回归分析。300年前、20年前、现在或在2015年由统计学家进行的DAD,跟如今数据科学家进行的DAD大相径庭。关键是,最终随着越来越多的统计学家学会这些新技术,而更多的数据科学家学会统计科学知识(采样、实验设计、置信区间——不只是第5章中描述的那些),数据科学家和统计学家之间的边界将变得更加模糊。事实上,我可以看到另一种数据科学家正在兴起:具备深厚统计知识的数据科学家。
数据科学家和计算机科学家的区别是,数据科学家有更强大的统计学背景,特别是在计算统计方面,但有时则是在实验设计、采样和蒙特卡洛模拟方面。
数据科学家与业务分析师 业务分析师专注于数据库设计(高层次的数据库建模,包括指标定义、仪表盘设计、检索和生成管理报告,并设计报警系统)、评估各种业务项目和支出的投资回报率及预算问题。一些业务分析师从事营销或财务的规划、优化和风险管理工作。许多业务分析师从事高层次的项目管理工作,直接向公司主管汇报。
有些任务也由数据科学家完成,特别是在较小的公司:指标的创建和定义、高层次的数据库设计(收集什么样的数据以及如何收集),或计算营销,甚至增长黑客(最近创造的一个词,来形容一种角色,它能够快速增加公司互联网访问流量,扩大公司或产品的影响力,这种工作涉及较强的工程和分析技能)。
数据科学家让业务分析师有提升空间,例如,帮助将报表制作过程自动化,使数据提取速度更快。数据科学家还可以教给业务分析师FTP和基础的UNIX指令知识:ls -l、rm -i、head、tail、cat、cp、mv、sort、grep、uniq -c及管道和重定向操作符(|, >)。然后,可以在数据库服务器上编程或安装一段代码(业务分析师通常是通过浏览器或工具,如Toad或Brio访问服务器),以检索数据。所有的业务分析师都必须做的是:
1.创建SQL查询(甚至要有可视化工具),并保存为SQL文本文件。 2.将它上传到服务器并运行程序(例如,一个Python脚本,读取SQL文件并执行它,检索数据,并将结果存储在CSV文件中)。 3.输出结果(CSV文件)到业务分析师的电脑中,做进一步分析。
对于业务分析师和数据科学家,这样的合作是双赢的。在实践中,这样的合作已经帮助业务分析师提取的数据比他们过去所使用的数据要大100倍,而且提取速度快10倍。
总之,数据科学家并不是业务分析师,但前者可以极大地帮助后者,包括帮助业务分析师将任务自动化。此外,如果数据科学家能带来额外的价值,具备额外的经验,他更容易找到工作,特别是在只有一个职位预算的公司,当雇主不能确定是雇用业务分析师(开展整体分析和数据任务)还是数据科学家(有商业头脑,可以执行一些通常分配给业务分析师的任务)时。在一般情况下,业务分析师是优先聘请的,但如果数据和算法变得过于复杂,也会雇用数据科学家。如果你创建自己的创业公司,你需要扮演两个角色:数据科学家和业务分析师。
数据科学家的思维方式不同于工程师、运筹学专业人士、计算机科学家。虽然运筹学涉及很多分析,但这一领域的焦点是具体业务优化层面,如库存管理和质量控制。运筹学涉及国防、经济、工程、军事等领域。它采用马尔可夫模型、蒙特卡洛模拟、排队论、随机过程,以及(由于历史原因)Matlab和Informatica工具。
数据科学会遇到两种基本类型的问题。
1.内部数据科学问题,如损坏的数据、粗心的分析或使用不恰当的技术。内部问题不是针对业务而言,而是针对数据科学社区。因此,解决办法包括训练数据科学家更好地工作,要他们遵循最佳做法。 2.业务应用问题是现实世界中的问题,因此要寻求解决方案,如欺诈检测,或识别一个因素是原因还是结果。这些可能涉及内部或外部(第三方)数据。
End
本文作者Vincent Granville,吴博、 张晓峰、季春霖参与编译。 转自:「36大数据」 更多:36dsj.com