【转载】如何才是Data Scientist?

2024-09-04 16:18
文章标签 data 转载 scientist

本文主要是介绍【转载】如何才是Data Scientist?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

发信站: BBS 未名空间站 (Sat Jan  4 17:53:14 2014, 美东)

如何才是Data Scientist?


小弟本是学术界的Bioinformatics Scientist,因生计问题3年前改行工业界Data
Scientist,经历过2家大的互联网公司,3个不同的岗位的Data Scientist。现将这些
年来摸爬滚打中所学所做所想所理解总结如下,抛砖引玉,还请大家多批评指点。
1.1 Data scientist的职责?

DS是数据应用科学家。他应该立足某个应用领域,根据领域需求设计合适的数据产品,
利用可以自动化获取的数据资源,设计合适的算法,采用适当的自动化工具进行数据计
算/合并/转换,最终得到数据产品。DS需要有独立的研究/开发能力,至少应该能开发
出数据产品的原型以及产生数据产品的流水线的原型,如果他能够开发出稳定可靠的工
业级数据处理流水线那就更好,因为通常在工作中找到合适容易理解你的思路并实现的
工程师本来就不是一件容易的事情。

为了履行这些职责,DS需要培养相应的能力。
1.2 Data scientist应该培养哪些能力?
1.2.1 大方向

    定义数据产品

    DS需要能够敏锐的捕捉数据产品的需求,能够发现并创造对企业有价值的数据产品
。根据最终消费者的不同,通常数据产品分为两类:
        内部消费者 通常内部消费者为manager / director之类的人物,他们需要用
你的数据产品来辅助决策,决定下一步的发展/开发方向。由于这种数据产品是内部使
用,对数据流水线质量要求一般,通常要求DS有较强的领域知识,要有分析,写作,做
幻灯的能力。
        外部消费者 也就是说最终上百万的用户使用DS的数据。比如Amazon的产品推
荐系统。这种数据产品是企业对外产品的一部分,质量要求较高。这种产品要求DS有较
强的企业级开发能力,本身要是一个合格的Developer。
    数据获取能力

    加工得到DS的数据产品需要各种来源数据,这些数据可能来自于各种不同的地方:
flatfile, database, api, etc,有着各种各样的格式。为了处理这些东西,DS需要掌
握相关的知识。
    数据加工能力

    DS首先要有足够的理论知识才能够比较游刃有余的加工各种数据,对于处理文字数
据你要有NLP的知识,处理图像数据你要有数字图像处理的知识,做机器学习应该要有
数学和统计学知识。 通常有两种手段来加工DS的数据:直接使用现成的工具包,或者
自己写程序来实现。然而最终DS都应该有写程序整合的能力,因为数据加工通常比较复
杂分为很多个步骤,为了实现这些步骤的自动化,DS需要将这些步骤整合为数据处理流
水线,不能自动化的则的不能称为“产品”,因为不能有效的利用机器从而无法达到边
际效用递减的效果。

    有了大方向,DS需要修炼相应的内功和招式。

1.2.2 内功(思维/知识层面)

Data scientist首先是科学家。形而上者谓之道,DS应该要有足够的理论知识作为指导
。 做好的DS比做好的Developer更困难,因为需要学习和积累更多的东西,但通常领域
知识不容易过时,因此带来的好处是DS的职业生命力可能会较长一些。

    领域科学

    DS需要深刻理解他所处的领域,成为这个领域的专家。这就好比不懂生物很难成为
一个好的Bioinformatician一样。不懂领域知识的DS就是搬砖头的。 这绝不是短期内
可以达到的事情,需要大量的阅读和多年经验的积累。所以说什么几个月就能成好的DS
是鬼话。 由此可以得出推论:积累非常重要,数据科学家不应该轻易更换从业领域。
    数学

    数学应该是DS的专长,在工作中会起到引导方向的作用,我自己个人的理解,DS应
该掌握
        线性代数:基础
        概率论/统计学:猜想大部分DS靠这个混饭
        最优化/运筹:碰到合适的问题这个会有奇效
    计算机科学

    虽然说计算机不过是实现idea的工具,但现实中各种软件工具几年一变,非常容易
过时,为了更容易的理解和掌握它们,万变不离其宗,应该学习不变的理论的东西。
        数据库理论
        算法: 帮助DS高效的实现程序
        函数式编程:让DS脱离接近硬件的思考,设计出更贴近问题领域,更数学化的
程序
        机器学习:混饭吃的招牌
        NLP/Image processing/etc:这些都是抽象化各种数据,提feature的领域知识

1.2.3 招式(技术/应用层面)

企业比较喜欢自己能support自己的DS。Developer们通常很忙,沟通这件事情有时候也
很麻烦,所以DS最好有单打独斗实现idea的能力。从这个角度出发,我认为DS关于数据
这块的知识面要足够广,以支持自己单打独斗。

    操作系统

    DS干的活很像大学/科研院所里的Scientist干的事情;用到的各种开源工具也类似
;为了更方便的使用各种开源工具,DS应该选用合适的操作系统,当然这就是Linux。
    程序设计语言

    DS不应该局限于某一两种程序设计语言,否则实现能力就受到了限制。我认为DS应
该会以下几类程序设计语言:
        数据操纵语言:SQL, Pig之类
        科学计算语言:R / octave / scipy之类
        脚本语言:Ruby / Python之类
        企业开发语言:Scala / Java之类

    除了这些,Lisp非常值得学习。某种程度上说,Lisp甚至可以归类于内功。 我倾
向于使用开源工具,因为这可以免费获得,学会了就是自己的,不需要给公司带来额外
的支出。
    数据库

    各种SQL/NoSQL的玩意,Hadoop等等

1.3 Data scientist应该如何做项目?

我的个人经验是DS很多时候需要单打独斗,和developer的集团作战不太一样的。 DS在
自己的领域要有更高的开发效率,因为很多时候DS需要开发原型或者迅速计算一些东西
以便辅助决策。如果自己的地盘上比developer还慢那还成什么话? DS写程序的原则是
能不写就不写,写了就有可能出bug。所以,尽量使用现成well tested的工具来完成任
务。 DS应该会简化问题抓住重点,解决关键的问题,因为单打独斗没有足够的时间,
很难做到面面俱到。
1.4 Data scientist的职业规划?

这个问题很难,我想很多人都在摸索中前进。 呆在一个地方,也许可以慢慢的升为
Senior以及更高,或者转为Team leader,这是两条不同的路。 第三条路,有些文章说
Data scientist => Product manager,但我不知道我们中国人的英语劣势会对此有多
大影响。 选择自己创业的DS没看到多少,是不是因为这个职业本身的性质决定的呢?

希望大家能够批评指正,谢谢。

这篇关于【转载】如何才是Data Scientist?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1136417

相关文章

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

CentOS下mysql数据库data目录迁移

https://my.oschina.net/u/873762/blog/180388        公司新上线一个资讯网站,独立主机,raid5,lamp架构。由于资讯网是面向小行业,初步估计一两年内访问量压力不大,故,在做服务器系统搭建的时候,只是简单分出一个独立的data区作为数据库和网站程序的专区,其他按照linux的默认分区。apache,mysql,php均使用yum安装(也尝试

使用Spring Boot集成Spring Data JPA和单例模式构建库存管理系统

引言 在企业级应用开发中,数据库操作是非常重要的一环。Spring Data JPA提供了一种简化的方式来进行数据库交互,它使得开发者无需编写复杂的JPA代码就可以完成常见的CRUD操作。此外,设计模式如单例模式可以帮助我们更好地管理和控制对象的创建过程,从而提高系统的性能和可维护性。本文将展示如何结合Spring Boot、Spring Data JPA以及单例模式来构建一个基本的库存管理系统

15 组件的切换和对组件的data的使用

划重点 a 标签的使用事件修饰符组件的定义组件的切换:登录 / 注册 泡椒鱼头 :微辣 <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-

12C 新特性,MOVE DATAFILE 在线移动 包括system, 附带改名 NID ,cdb_data_files视图坏了

ALTER DATABASE MOVE DATAFILE  可以改名 可以move file,全部一个命令。 resue 可以重用,keep好像不生效!!! system照移动不误-------- SQL> select file_name, status, online_status from dba_data_files where tablespace_name='SYSTEM'

提问的智慧(转载)

此文让我受益良多。值得一读,大家如果也觉得不错就一起来推~~~   ---------------------------------      在黑客世界里,当提出一个技术问题时,你能得到怎样的回答?这取决于挖出答案的难度,同样取决于你提问的方法。本指南旨在帮助你提高发问技巧,以获取你最想要的答案。       首先你必须明白,黑客们只偏爱艰巨的任务,或者能激发他们

Struts2常用标签总结--转载

Struts2常用标签总结 一 介绍 1.Struts2的作用 Struts2标签库提供了主题、模板支持,极大地简化了视图页面的编写,而且,struts2的主题、模板都提供了很好的扩展性。实现了更好的代码复用。Struts2允许在页面中使用自定义组件,这完全能满足项目中页面显示复杂,多变的需求。 Struts2的标签库有一个巨大的改进之处,struts2标签库的标签不依赖于

SIGMOD-24概览Part7: Industry Session (Graph Data Management)

👇BG3: A Cost Effective and I/O Efficient Graph Database in ByteDance 🏛机构:字节 ➡️领域: Information systems → Data management systemsStorage management 📚摘要:介绍了字节新提出的ByteGraph 3.0(BG3)模型,用来处理大规模图结构数据 背景

java.sql.SQLException: No data found

Java代码如下: package com.accord.utils;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import

【转载】ACM感悟

今天看了一篇我们学校前辈的ACM的感悟,觉得写的十分有道理,这里转载,文章还会不断的改进和更新。 原文链接:http://www.cnblogs.com/Chierush/p/3760870.html?ADUIN=1339764596&ADSESSION=1401536826&ADTAG=CLIENT.QQ.5329_.0&ADPUBNO=26349 声明:本文是写给弱校ACM新手的一点