如何成为数据科学家?

[复制链接]
滋滋629 发表于 2023-10-5 11:55:29|来自:北京 | 显示全部楼层 |阅读模式
删除一切问题描述,因为标题就很清晰的说明了问题。“问题描述”处为了避免有推销自己的嫌疑,无原则问题请大家不要修改,谢谢!
全部回复5 显示全部楼层
泪下兰泽 发表于 2023-10-5 11:56:00|来自:北京 | 显示全部楼层
数据科学家是我未来一个职业的备选项,所以平时就比较关注这方面的资讯,正好前两天听了一个关于博士生的职业规划讲座,讲者的身份是英国某四大的lead data scientist,从中获益良多,正好趁这个机会总结下。
这个讲座是主要是针对博士在读或者博士学位获得者的,特别是一些非CS专业的同学如何准备data scientist的职业准备。
工业界特点

首先提到的是不同于学术界,data scientist通常情况属于工业界,具有以下7个特点:

  • 驱动力:商业敏锐度,快速的经济回报,生活方式的改变,对工程项目兴趣等。
  • 能力:信息收集,解决问题,独立性,技术写作,公开演讲等。
  • 匹配:深入研究“创新研究”,转化为行业问题或快速学习相关技能
  • 团队合作:帮助他人,互相讨论,极客,Kaggle比赛等。
  • 态度:乐于学习(业务,基础架构,工具),乐于融入企业/公司文化,适应力等
  • 风格:有趣,有创造力,开放,支持,鼓励等
  • 公司文化:科技公司,咨询公司,金融服务,初创公司,公务员
个人前期准备

讲者提到了应届生在进行职业规划的时候,不一定非得追求一步到位到科技公司或者互联网公司,因为这些公司竞争通常相当激烈。反而可以参考一些公司甚至银行等金融机构的graduate scheme,这种渠道对于非CS科班出身的同学非常友好,成功率也相对来说更大一点,之后再跳槽也非常的方便。
另外,对于一个打算找业界工业的应届生,应该尽量充实自己的以下几个方面:

  • 就业区域:未来几年内的想去的地方,尽早谋划
  • 尽早与业界沟通:比如可以通过科研项目合作尽早跟业界接触,提前了解业界需求
  • 技能树:编程,工具掌握,各种证书,外语(非必须)
  • 刷题:很多IT公司都要走这一步,逃不掉
  • 兜售你的科研成果:在博士就读期间,肯定会有科研成果发表,不然也毕不了业,那么思考如何将自己的科研成果转化为业界难点的解决办法(比如一套鲁棒性很强的在线分类算法等)、
  • 丰富简历:比如写一些博客,个人网站,github代码,kaggle竞赛等
数据科学 Data Science

数学 + 编程,DS的本质就是这两者的结合,这个方向的对口职业一般也需要这两者的结合。比如在金融领域列举了以下几个职业:

  • Quant,金融知识和计算机知识结合的职业,会需要到:CFA,CQF,C++, Python, Linux等技能
  • 商业分析师:SQL, Java, JS, Perl, ETL tools 等
  • 风控:政策理解 + 市场 + 管控 + 欺诈等, 和Python Sql等IT知识
对于大多数人来说,我其实是推荐把数据分析当做一个方向来学的,首先python的优势就在数据处理分析人工智能
人工智能的从业门槛很高,自学基本上属于纯玩,性价比不高。
数据分析处理,我觉得是未来各行各业都可能碰到的问题,虽然现在有很多自动化数据处理工具,但是毕竟通用的场景并不多,而那些熟悉某个特定行业领域+数据处理能力的复合型人才就相对可能更吃香。
这里有一门知乎知学堂出品的数据处理精品课程,对于在本职工作之外想要学习一门实用技能的同学,建议免费体验一下,记住,那这个找工作很难,属于锦上添花的技能。
DS需要掌握的几个要点:

Python IDE 集成开发环境:

Jupyter notebooks, Spider, PyCharm等


text editor 文本编辑器:

Sublime text, Vim editor, Visual Studio code


version control 版本控制:

Github, Gitlab, Bitbucket


Cloud sharing functionality 云平台相关:

Google Colab, Kaggle, Azure notebooks, AWS Sagemarker


Package installation 库安装:

pip, conda, homebrew


Common packages 常用库:

Data process: pandas, pyodbc, sqlalchemy, etc.
Visualization: matplotlib, plotly, seaborn, etc.
Machine learning: sklearn, tensorflow
NLP: nltk, spacy, tensorflow, torch
GUI: tinker, flask
Test tool 测试工具

Selenium, Katalon Studio


Containerization and orchestration 容器和编排配置

Docker, Kubernetes


backup and restore 备份和还原

Terraform


算法和技能方向

讲者用下面这张图做了一个总体的介绍。


并列举了一些常用的算法:
Classification 分类算法:

比如说判断某个邮件是否是垃圾邮件。



  • 需要的输入数据: 特征features和对应的数据标签 label


  • 常用的分类算法:

    • Linear Classifiers: Logistic Regression, Naive Bayes Classifier
    • Nearest Neighbour:
    • Support Vector Machines
    • Decision Trees
    • Boosted Trees
    • Random Forest
    • Neural Networks



  • 性能衡量标准:

    • accuracy, precision, recall, F1 score
    • confusion matrix
    • AUC




Regression 回归算法:

比如通过地理位置,供需变化等参数与拟合一个预测房价变化的模型。



  • 需要的输入数据: 特征features和对应的数据标签 label
  • 常用的回归算法:

    • simple linear regression
    • polynomial regression
    • support vector regression
    • decision tree regression
    • random forest regression



  • 性能衡量标准:

    • Mean Squared Error(MSE)
    • Root-Mean-Squared-Error(RMSE)
    • Mean-Absolute-Error(MAE)
    • R² or Coefficient of Determination
    • Adjusted R²

Clustering 聚类算法:

比如说在保险行业,可以用于确定平均理赔费用较高的汽车保单持有人群体,识别欺诈行为。



  • 需要的输入数据: 特征features(不需要label,un-supervised)
  • 常用的聚类算法:

    • K-Means clustering
    • mean-shift clustering
    • density-based spatial clustering of applications with noise (DBSCAN)
    • expectation–maximization (EM) clustering using Gaussian Mixture Models (GMM)
    • agglomerative hierarchical clustering



  • 性能衡量标准:

    • clustering tendency: Hopkins test - a statistical test for spatial randomness of a variable to measure the probability of data points generated by uniform data distribution
    • number of clusters: elbow method
    • clustering quality: Silhouette Coefficient

Dimension reduction 降维方法

优点包括:降低存储成本,减少计算时间,提高算法性能,有利于可视化
常用的方法:

  • data filters: missing value ratio, low variance filter, high correlation filter
  • random forest
  • backward feature elimination
  • forward feature selection
  • factor analysis
  • principal component analysis (PCA)
  • independent component analysis
  • ISOMAP
  • t- distributed stochastic neighbour embedding (t-SNE)
  • uniform manifold approximation and projection (UMAP)


Ensemble Learning 集成学习

原理可以简单理解为三个臭皮匠顶个诸葛亮,结合多个基学习器进行学习并预测,通常具有不错的性能
三大主流的集成学习方法: 详细请参考:<a href="http://zhuanlan.zhihu.com/p/36161812" class="internal">https://zhuanlan.zhihu.com/p/36161812



  • Bagging:使用bootstrap aggregation
  • Boosting:将多个弱学习器集成为一个强学习器(多为同质学习器)
  • Stacking:类似于Boosting,但多余异质学习器的组合
NLP 自然语言处理



为什么选择NLP?


  • 非结构化文本数据常常会出现在实际场景中
  • 企业主希望从非结构化内容中提取有用的信息以发现问题
  • 内容丰富和情感分析可以帮助做出更明智的决策
典型NLP任务:


  • 文字分类
  • 情绪分析
  • 主题建模
  • 文字总结
  • 实体识别
  • 信息检索
统计方面

在算法部分中已经涵盖了一部分的统计学知识,其余的统计知识比如假设检验等知识可以从这本书中查漏补缺
《面向数据科学家的实用统计学》


总结:

讲座大概持续了一个半小时,信息量很大,我的理解就是对于一个数据科学家,数学+统计+编程+业务理解,这四个方面都得面面俱到。
如果你能坚持看到这里,那么就去学吧,从最简单也是最直观的数据分析学起来吧,并且试着从知乎知学堂出品的数据分析课开始吧。
licemiao 发表于 2023-10-5 11:56:38|来自:北京 | 显示全部楼层
自我介绍一下,我毕业于MIT的Business Analytics项目,这个项目虽然叫Business Analytics,但是也可以被称为是Data Science项目。现在毕业后即将入职FLAG一家公司,成为一位Machine Learning Scientist,想和大家分享一下我的看法。
数据科学家的岗位定义其实很模糊。
A在是HYPSM名校博士毕业,在纽约一家对冲基金工作,写着最核心的交易策略,工资20万,年底奖金25万。
B在一家大型的互联网公司的核心组,每天处理着TB级的数据,很多时候和深度学习的模型打交道,也要读最新的Paper复现结果。
C在一家顶级咨询公司工作,每天见客户,向客户解释着模型,PPT玩得贼6,business sense极为强大。
D在在一家银行工作,每天写SQL,用Tableau做报表,年薪10万,奖金3万。
你猜怎么着?ABCD四个人的title都叫Data Scientist
所以说起来,Data Scientist这个概念有点模糊,其实我们所说的Data Scientist,有些可能可以是Quantitative Researcher,多数其实是Data Analyst,有些其实更像Consultant,也有一些其实就是SDE。所有这些岗位其实都和Data Scientist沾些边。
所以,今天不聊怎么找一个名叫“Data Scientist”的岗位,而是想和大家聊一下,你有Data Science相关的技能(以就读Data Science和Business Analytics相关专业的同学为例)
(1)能找哪些岗位
(2) 这些岗位分别需要什么技能,待遇如何
(3) 如何准备和提升这些技能


1. 学习DSBA可以从事什么岗位方向?
DSBA专业的同学其实就业的时候,选择面非常的广,这是优势,也是劣势。
优势是如果你所有技能都真的很强,你可以在多个行业全都拿到offer,职业选择的面广了很多。劣势是,如果你背景不够硬,而且没有针对某个方向好好准备,那你有可能一个offer都没有。
首先,这几个方向是:
(1)咨询公司
DSBA方向大多数的毕业生,其实最适合的是去咨询公司。
DBA方向大多数的毕业生,其实最适合的是去咨询公司。,但是在咨询公司做做data scientist或者偏向tech的consultant已是足够。另外,BA专业的同学有比较强的优点:会沟通,会展示。这使得BA专业去咨询公司简直如鱼得水。
就拿我们项目来说,44个人中,大概有10个人拿了bcg gamma的offer,5个人拿了麦肯锡的offer。咨询行业无愧BA毕业生的最佳去处。
我的好朋友
@Iker Wang
就即将成为BCG一名光荣的Data Scientist。
@Pace Han
则加入了麦府。

(2)互联网和科技公司
互联网科技公司内部,可供选择的岗位也很多。
如果你编程像我一样强,完全可以直接申software engineer。去年我们项目有两个学长就去了google做software engineer。
如果你编程稍微弱一些,希望自己的工作内容中多一些machine learning和modeling,data scientist这个岗位很适合你。但是值得注意的是,大部分公司的data scientist其实都偏向于招博士生,硕士生可能有时候面试会觉得比较吃力。在amazon,这个岗位叫applied scientist。
如果你想接触更多的业务,你可以选择data analyst或者product analyst,在amazon这个岗位又叫business intelligence engineer。这是一个科技公司中分析产品分析市场的岗位,不那么hardcore,sql用得比较多。
当然,如果你想接触更多的business,你也可以选择当一个产品经理 product manager。
(3)金融公司
金融公司,可以选择Quantitative Researcher,或者Data Scientist,或者Quantitative Trader。
(4)其他传统企业
在传统的行业,也有market analyst或者data analyst的岗位。

2. 有哪些可以学习的skillset?
为了找一份上述的工作,你主要的skillset要有如下这些:
(1)算法和数据结构(比如leetcode,topcoder)
(2)数据编程语言:SQL>Python>R(面试中的重要性)
(3)数学、统计及建模应用:统计学、运筹学、机器学习等;
(4)数据知识在实际领域中的应用:digital marketing,healthcare analytics,machine learning in finance这些。俗称领域知识。
(5)纯智商,brainteaser能力强,解数学难题能力强,临场反应快
(6)会表达,会交流,会展示,对于中国人在美国求职,这一项也包含了语言水平

每个岗位对应的skillset要求是不一样的,薪酬待遇也是不一样的。具体可以看如下的介绍。
3. BA就业个方向的薪资与技能要求
为了更好地展示,大家可以看我做的表。
需要注意的是,这里的薪资水平(包含公司+股票+奖金),我是参考了每个行业里顶尖的公司的水平。比如quant researcher我参考的是citadel, two sigma。sde我参考的是facebook,google。consulting参考麦肯锡bcg。行业里其他公司不一定有这么高的薪酬,但是总体来说,基本这几个行业、岗位的工资差距是类似的(比如一家比较一般的企业的data analyst,就是会比data scientist要工资稍低)。
工资的单位是美元。这是我的直观感觉,如果有数据不准确的,欢迎指出。




<hr/>
在接下来的部分中,主要的内容有:

  • 前文讲到的几个skillset该如何提升?(我的建议)
话不多说,直接开始!
<hr/>上文中我们提到了几个BA学生在北美求职的重要技能,他们分别是:
(1)算法和数据结构(比如leetcode,topcoder)
(2)数据相关的编程语言:SQL>Python>R(面试中的重要性)
(3)数学、统计及建模应用:统计学、运筹学、机器学习等;
(4)数据知识在实际领域中的应用:digital marketing,healthcare analytics,machine learning in finance这些。俗称领域知识。
(5)纯智商,brainteaser能力强,解数学难题能力强,临场反应快
(6)会表达,会交流,会展示,英语水平
从这个(我自制的)图中,大家可能有看得出每个技能的“价值”几何。




下面就逐一讲讲该如何提升。
(1)算法和数据结构(比如leetcode,topcoder)
算法和数据结构,是software engineer招聘考察的核心,考察的是对计算机程序的核心内容:算法 algorithm和数据结构data structure的理解运用能力。这一项技能对于很多从商科、文科转来的BA学生简直是个噩梦。但是这项技能很值钱,因为只要你这个技能过关,可以把你的工资上限提高很多。我本人的求职过程,因为这个技能强,就占了很大的便宜。
具体怎么提升呢。最简单粗暴的方法:刷leetcode。只要在google搜一下”刷leetcode“,就有成百上千的攻略教你怎么操作。
我本人因为是信息竞赛选手,初三的时候水平就能秒杀所有leetcode hard了,所以几乎没怎么准备。对于一般的同学,如果你想申靠近sde的岗位的话,建议还是leetcode刷至少150题吧。





等你可以轻松写出“树链剖分”,拿下SDE的offer应该闭着眼睛就能做到了


所以,这是一个目标明确、可提升性强的技能。
(2)数据相关的编程语言
剥离上述和leetcode相关的编程题。
编程技能还有两种考察方式,
第一种是直接让写SQL。Facebook的Data Scientist就是这么考的。
第二种是让用python或者r直接分析一个数据集,展示结果。这当中,会涉及到大量的data manipulation,所以pandas(如果你用python)和dplyr(如果你用r)还是要玩得很熟悉。
具体的提升方式,最好的还是通过实战来练习,sql写得多了,自然也就熟悉了。pandas的技能也是百炼成钢的,没法一蹴而就。
成为Data Analyst或者是Data Engineer,SQL永远是你最重要的技能之一。但是也别只会SQL,那样你就成了别人口中的SQL Monkey,职业发展也会受限。



(3)数学、统计及建模应用:统计学、运筹学、机器学习等;
这一类的知识会被从两种方式考察。
第一种,直接问conceptual的machine learning questions。
举几个例子:
a. Why is GDBT different from Random Forest?
b. What is the difference between l1 norm and l2 norm?
c. What is Thompson Sampling?
d. What is the objective function of explore and exploit?
e. What is dropout layer, why is it important?
第一种问题,我推荐,还是要系统的学一下machine learning。可以看李航的《统计学习方法》,可以看《Elements of statistical learning theory》,可以看MLAPP,这三本书我都觉得很有帮助。如果想抱佛脚,可以推荐你看《Heard In Data Science Interviews: Over 650 Most Commonly Asked Interview Questions & Answers》





第二种,需要你分析一个数据集,做一个take home test (一般给你3天到7天的时间),让你根据要解决的问题建模,然后给出ppt展示。Takehome做起来真的不容易,占用很多时间,也不容易通过,我们下篇文章细讲。
(4)数据知识在实际领域中的应用:digital marketing,healthcare analytics,machine learning in finance这些。俗称领域知识。
这方面的能力,一般会在一些业务题、case question中考察,需要你对公司、岗位面对的业务场景非常熟悉,能用一个公司员工(或者consultant)的思维去思考问题。这类的题目我不是特别的擅长。
如果面的是咨询公司,你面对的case你并不知道会来自于哪个行业,最好能大量地mock interview。
如果面的是科技公司,比如uber,最好能和公司里现在的人聊聊,看看他们看问题的角度。比如uber的业务分析,一定有两个方面,一方面是driver,一方面是rider(这是我从现任员工口中得知的)。比如分析Facebook的业务题的时候,可能加上“网络效应 Network Effect”相关的分析,可能会迎合他的口味(这仅是我的猜测)。
我个人发现去Youtube上看一些对方公司senior data scientist或者marketing vp这样的人物的演讲,可以快速帮助你建立那个公司的分析思路。
(5)纯智商,brainteaser能力强,解数学难题能力强,临场反应快
在quant相关的职位当中,经常会被问到一些需要脑子聪明才能解出来的数学题。有一些是和概率相关的,有一些是和统计相关的,有一些就是纯推理。我面了四家Hedge Fund,都碰到过这样的题目。如果岗位是Quant Researcher这样的题目会少一些,但如果是Quant Trade,那对不起,你80%的面试题都是这样。
brainteaser的能力,临场解数学题的能力,还是可以通过刷题提升的。我的感觉是面试越面到后面,也就熟悉了一些常用的套路。我还可以一本书《A Practical Guide to Quantitative Finance Interviews》。
至于纯智商嘛。。。我也不知道该怎么提升了。希望有人寻找到答案以后可以顺便告知我。
(6)会表达,会交流,会展示,英语水平
全方位提高你的表达能力!
多和你的外国同学一起做课程项目吧!别整天和中国人宅在一起!
有机会说英语就说英语!
试着练习presentation,用录像的方式不断改进!
多mock interview!不仅是自己要多说!还要在帮别人mock的时候学习别人怎么说!

今天更新到这,接下来的文章中,我会以自己的求职经历,回顾各类公司问的问题,让大家对于不同公司的面试考法有个大致的”感知“。
同时我也会针对于一些特别的问题和大家分享我的经验:take home test、薪酬谈判、求职期的心态,etc.
敬请期待。
<hr/>欢迎关注!
MIT商业分析硕士在读 /程序员/数据玩票/商业咨询/保持谦卑与好奇
欢迎关注我的个人账号:AndrewHuang
求职辅导请移步:http://www.mamba-analytics.org/
以及Business Analytics知乎专栏:Business Analytics
数据科学的岗位和技能要求MIT学长教你DIY :申请季注意事项MIT 学长教你 DIY 申请:流程和材料
xchenxjiex 发表于 2023-10-5 11:57:25|来自:北京 | 显示全部楼层
如果你只是即将毕业或者转专业想进入数据科学圈子,我的建议是点好一个方向的技能点就好。我会先总结每个方向的定义,帮助大家选择,然后再进入到每个技能如何学习的细节。
数据科学家三大方向

作为一个比较新的行业,工业界并没有对数据科学家(Data Scientist)应该做什么有非常清楚的定义。以我个人的理解,我会把数据科学家分成三个大方向:分析、推论和算法。每一个方向所需要的具体能力可能相差很大:我是不会觉得三个方向有高低差别,也不是说每个数据科学家都能够做到面面俱到(尤其对于想入门的准数据科学家们)。(更详细的方向信息详见我的另一个回答)



数据科学家最重要的三个核心技能及其内容总结

在粗略的介绍了数据科学家的方向后,我的建议是:根据你自身的基础和经验,选择一个方向,点好这个方向所需的技能点。如果你是即将毕业的学生,我会建议有经济背景的同学选择推论方向,计算机背景的同学选择算法方向,而数学背景的可以在推论和算法中随便选一个方向。如果你是已经在工业界或者想要转专业的同学,我会建议往分析方向走。当然,我的这些推荐也是非常粗暴的,大家也可以往下看看具体的能力介绍来决定你想要走的方向。
一般来说,如果你能点出其他方向的技能点会有加分。例如一个算法方向的数据科学家如果有很敏锐的商业敏感度,能够发现商业上的问题并且利用自己的建模知识来解决它,会是一个大加分的项目。但是,对于初级的数据科学家,一是一般不会去进行考察,二是人的精力也有限,很难能够在两个方向中兼顾。所以还是会建议先把自己方向的所需技能练好再去选择其他方向的能力



数据科学家每个方向具体的能力和所应掌握的熟练度

上图中我总结了一下我觉得每个方向,每个能力所需要的熟练度。熟练代表你应该能独立、高效地完成可能较复杂的任务,而基础只需要你能解决比较简单的问题就可以了。拿SQL而言,分析方向的数据科学家应该需要知道OVER语句,但是其他方向会GROUP BY就够了。
接下来我会对每个具体能力分享一些我觉得很不错的资料。我会尽量选择博文或者网站,我也会推荐一些书,不过。如果有遗漏的话也请大家留言分享。
其中,数理基础主要是大学的时候日常积累。如果想提高的话就拿起大学的高等代数,统计学,数学分析等等看看吧。
SQL


  • [基础] 2天SQL速成 https://www.w3schools.com/sql/
  • [熟练] Udemy 的课程 https://www.udemy.com/the-complete-sql-bootcamp/?ranMID=39197&ranEAID=skg%2FSko%2FYbo&ranSiteID=skg_Sko_Ybo-1Pc9r7ZYt_nGVOHefgLMKw&LSNPUBID=skg%2FSko%2FYbo
  • [熟练] LeetCode Database 题目 https://leetcode.com/problemset/database/
商业敏感度


  • [基础/熟练] Sequoia https://medium.com/sequoia-capital/data-informed-product-building-1e509a5c4112
  • [熟练] (还得向PM取经)Cracking the PM Interview: How to Land a Product Manager Job in Technology
  • [熟练] (这本也挺不错的,可选)Data Science for Business: What You Need to Know about Data Mining and Data-Analytic Thinking
数据可视化 & 交流


  • [基础/熟练] (强力推荐,你只需要这么一本书就够了)Storytelling with Data: A Data Visualization Guide for Business Professionals
统计推断


  • [基础] 知道t test就够了,再想想怎么解释p value。
  • [熟练] 复习一下概率论,统计,回归分析,打开你大学的统计学教材吧。
因果分析 & 实验设计


  • [基础] 了解如何做基础的A/B测试:原理、目的和如何解读 https://zhuanlan.zhihu.com/c_46820640, https://www.udacity.com/course/ab-testing--ud257
  • [熟练] 了解A/B测试失效的时候应该怎么做:switchback, market A/B, Cluster A/B, Interleaving.
机器学习


  • [基础] Andrew Ng Coursera: https://www.coursera.org/learn/machine-learning/home/welcome
  • [熟练] (简单一些,强调上手) An Introduction to Statistical Learning: With Applications in R
  • [熟练] (算是圣经了这本) The Element of Statistical Learning
写码能力


  • Leet Code 基础的同学只需要会用 Python 实现 Easy 的算法,熟练的同学就刷题吧。
希望大家都能找到想要的工作。(ง •̀_•́)ง
bggxl 发表于 2023-10-5 11:57:36|来自:北京 | 显示全部楼层
抛弃幻想,谈谈现实中的数据科学家 - Hello陈然! - 知乎专栏
大部分心中的Data Scientist 可能是上文中的Type A Data Scientist。
但是从我的接触来看,现在更大的需求来自于Type B Data Scientist,也即大家都是知道现在基于机器学习的算法能够帮助企业增长是大趋势,但是究竟如何把算法结合公司业务,还是需要真正能两边都懂,还能克服企业内部利益冲突,做出实际产品的人。
推荐一亩三分地W大的系列文章:
现在很火的数据科学data science到底是什么?你对做Data Scientist感兴趣吗?数据科学家data scientist需要的三大核心技能:Data Hacking、Problem Solving and Communication
想成为数据科学家Data Scientist,需要申请读什么专业?
美国哪些公司招聘Data Scientist?看重数据科学家什么方面的背景?
数据科学家Data Scientist的职业发展前景如何?
推荐《说说Data Science的入门级工作》和《数据科学就业前景观察分析》,欢迎来分享你的经验和看法!
数据科学家Data Scientist能挣多少钱?
做数据科学家Data Scientist,硕士Master和博士PhD学位有啥区别?
nvzitea 发表于 2023-10-5 11:58:34|来自:北京 | 显示全部楼层
"Data Science = statistics who uses python and lives in San Francisco"
恰好我马上启程到Twitter的data science team,而且恰巧懂一点点统计和住在旧金山,所以冲动地没有邀请就厚脸回答了:D
我认为有几个大方面
1)学好python。
现在几乎所以公司的数据都可以api给你,而python的数据处理能力强大且方便。加之在machine learning的很多算法上,python也独俏一方。另外,它的简明方便迅速迭代开发,15分钟写完个算法就可以看效果了。
除此之外,py还有点酷酷的感觉。任何程序拿matlab和c++都是可以写的,不过我真没认识过哪个d愿意自己把自己扔那个不酷的框框里:D
对不规则输入的处理也给python一个巨大的优势。通常来说,在我现在日常的工作里,所有的数据都是以纯文本但是非格式的形式存储的(raw text, unstructured data)。问题在于,这些文本不可以直接当作各种算法的输入,你需要

  • 分词,分句
  • 提取特征
  • 整理缺失数据
  • 除掉异类(outlier)
在这些时候,python可谓是神器。这里做的1-4都可以直接在scikit-learn里面找到对应的工具,而且,即使是要自己写一个定制的算法处理某些特殊需求,也就是一百行代码的事情。
简而言之,对于数据科学面临的挑战,python可以让你短平快地解决手中的问题,而不是担心太多实现细节。
2)学好统计学习
略拗口。统计学习的概念就是“统计机器学习方法”。
统计和计算机科学前几十年互相平行着,互相造出了对方造出的一系列工具,算法。但是直到最近人们开始注意到,计算机科学家所谓的机器学习其实就是统计里面的prediction而已。因此这两个学科又开始重新融合。
为什么统计学习很重要?
因为,纯粹的机器学习讲究算法预测能力和实现,但是统计一直就强调“可解释性”。比如说,针对今天微博股票发行就上升20%,你把你的两个预测股票上涨还是下跌的model套在新浪的例子上,然后给你的上司看。
Model-1有99%的预测能力,也就是99%的情况下它预测对,但是Model-2有95%,不过它有例外的一个附加属性——可以告诉你为什么这个股票上涨或者下跌。
试问,你的上司会先哪个?问问你自己会选哪个?
显然是后者。因为前者虽然有很强的预测力(机器学习),但是没有解释能力(统计解释)。
而作为一个数据科学家,80%的时间你是需要跟客户,团队或者上司解释为什么A可行B不可行。如果你告诉他们,“我现在的神经网络就是能有那么好的预测力可是我根本就没法解释上来”,那么,没有人会愿意相信你。
具体一些,怎么样学习统计学习?

  • 先学好基本的概率学。如果大学里的还给老师了(跟我一样),那么可以从MIT的概率论教材【1】入手。从第1章到第9章看完并做完所有的习题。(p.s.面试Twitter的时候被问到一个拿球后验概率的问题,从这本书上抓来的)。
  • 了解基本的统计检验及它们的假设,什么时候可以用到它们。
  • 快速了解统计学习有哪些术语,用来做什么目的,读这本【5】。
  • 学习基本的统计思想。有frequentist的统计,也有bayesian的统计。前者的代表作有【2】,后者看【3】。前者是统计学习的圣书,偏frequentist,后者是pattern recognition的圣书,几乎从纯bayesian的角度来讲。注意,【2】有免费版,作者把它全放在了网上。而且有一个简易版,如果感觉力不从心直接看【2】,那么可以先从它的简易版开始看。简易版【4】是作者在coursera上开课用的大众教材,简单不少(不过仍然有很多闪光点,通俗易懂)。对于【3】,一开始很难直接啃下来,但是啃下来会受益匪浅。
注意,以上的书搜一下几乎全可以在网上搜到别人传的pdf。有条件的同学可以买一下纸制版来读,体验更好并且可以支持一下作者。所有的书我都买了纸制版,但是我知道在国内要买本书有多不方便(以及原版书多贵)。
读完以上的书是个长期过程。但是大概读了一遍之后,我个人觉得是非常值得的。如果你只是知道怎么用一些软件包,那么你一定成不了一个合格的data scientist。因为只要问题稍加变化,你就不知道怎么解决了。
如果你感觉自己是一个二吊子数据科学家(我也是)那么问一下下面几个问题,如果有2个答不上来,那么你就跟我一样,真的还是二吊子而已,继续学习吧。

  • 为什么在神经网络里面feature需要standardize而不是直接扔进去
  • 对Random Forest需要做Cross-Validatation来避免overfitting吗?
  • 用naive-bayesian来做bagging,是不是一个不好的选择?为什么?
  • 在用ensembe方法的时候,特别是Gradient Boosting Tree的时候,我需要把树的结构变得更复杂(high variance, low bias)还是更简单(low variance, high bias)呢?为什么?
如果你刚开始入门,没有关系,回答不出来这些问题很正常。如果你是一个二吊子,体会一下,为什么你跟一流的data scientist还有些差距——因为你不了解每个算法是怎么工作,当你想要把你的问题用那个算法解决的时候,面对无数的细节,你就无从下手了。

说个题外话,我很欣赏一个叫Jiro的寿司店,它的店长在(东京?)一个最不起眼的地铁站开了一家全世界最贵的餐馆,预订要提前3个月。怎么做到的?70年如一日练习如何做寿司。70年!除了丧娶之外的假期,店长每天必到,8个小时工作以外继续练习寿司做法。
其实学数据科学也一样,沉下心来,练习匠艺。

3)学习数据处理
这一步不必独立于2)来进行。显然,你在读这些书的时候会开始碰到各种算法,而且这里的书里也会提到各种数据。但是这个年代最不值钱的就是数据了(拜托,为什么还要用80年代的“加州房价数据”?),值钱的是数据分析过后提供给决策的价值。那么与其纠结在这么悲剧的80年代数据集上,为什么不自己搜集一些呢?

  • 开始写一个小程序,用API爬下Twitter上随机的tweets(或者weibo吧。。。)
  • 对这些tweets的text进行分词,处理噪音(比如广告)
  • 用一些现成的label作为label,比如tweet里会有这条tweet被转发了几次
  • 尝试写一个算法,来预测tweet会被转发几次
  • 在未见的数据集上进行测试
如上的过程不是一日之功,尤其刚刚开始入门的时候。慢慢来,耐心大于进度。
4)变成全能工程师(full stack engineer)
在公司环境下,作为一个新入职的新手,你不可能有优待让你在需要写一个数据可视化的时候,找到一个同事来给你做。需要写把数据存到数据库的时候,找另一个同事来给你做。
况且即使你有这个条件,这样频繁切换上下文会浪费更多时间。比如你让同事早上给你塞一下数据到数据库,但是下午他才给你做好。或者你需要很长时间给他解释,逻辑是什么,存的方式是什么。
最好的变法,是把你自己武装成一个全能工作师。你不需要成为各方面的专家,但是你一定需要各方面都了解一点,查一下文档可以上手就用。

  • 会使用NoSQL。尤其是MongoDB
  • 学会基本的visualization,会用基础的html和javascript,知道d3【6】这个可视化库,以及highchart【7】
  • 学习基本的算法和算法分析,知道如何分析算法复杂度。平均复杂度,最坏复杂度。每次写完一个程序,自己预计需要的时间(用算法分析来预测)。推荐普林斯顿的算法课【8】(注意,可以从算法1开始,它有两个版本)
  • 写一个基础的服务器,用flask【9】的基本模板写一个可以让你做可视化分析的backbone。
  • 学习使用一个顺手的IDE,VIM, pycharm都可以。

4)读,读,读!
除了闭门造车,你还需要知道其它数据科学家在做些啥。涌现的各种新的技术,新的想法和新的人,你都需要跟他们交流,扩大知识面,以便更好应对新的工作挑战。
通常,非常厉害的数据科学家都会把自己的blog放到网上供大家参观膜拜。我推荐一些我常看的。另外,学术圈里也有很多厉害的数据科学家,不必怕看论文,看了几篇之后,你就会觉得:哈!我也能想到这个!
读blog的一个好处是,如果你跟他们交流甚欢,甚至于你可以从他们那里要一个实习来做!
betaworks首席数据科学家,Gilad Lotan的博客,我从他这里要的intern :D
Gilad Lotan
Ed Chi,六年本科硕士博士毕业的神人,google data science
http://edchi.blogspot.com/
Hilary Mason,bitly首席科学家,纽约地区人尽皆知的数据科学家:
hilarymason.com

在它们这里看够了之后,你会发现还有很多值得看的blog(他们会在文章里面引用其它文章的内容),这样滚雪球似的,你可以有够多的东西早上上班的路上读了:)

5)要不要上个研究生课程?
先说我上的网络课程:
Coursera.orghttps://www.coursera.org/course/machlearning
前者就不说了,人人都知道。后者我则更喜欢,因为教得更广阔,上课的教授也是世界一流的机器学习学者,而且经常会有一些很妙的点出来,促进思考。


对于是不是非要去上个研究生(尤其要不要到美国上),我觉得不是特别有必要。如果你收到了几个著名大学数据科学方向的录取,那开开心心地来,你会学到不少东西。但是如果没有的话,也不必纠结。我曾有幸上过或者旁听过美国这里一些顶级名校的课程,我感觉它的作用仍然是把你领进门,以及给你一个能跟世界上最聪明的人一个交流机会(我指那些教授)。除此之外,修行都是回家在寝室进行的。然而现在世界上最好的课程都摆在你的面前,为什么还要舍近求远呢。

总结一下吧
我很幸运地跟一些最好的数据科学家交流共事过,从他们的经历看和做事风格来看,真正的共性是
他们都很聪明——你也可以
他们都很喜欢自己做的东西——如果你不喜欢应该也不会看这个问题
他们都很能静下心来学东西——如果足够努力你也可以


【1】
Introduction to Probability and Statistics
【2】Hastie, Trevor, et al. The elements of statistical learning. Vol. 2. No. 1. New York: Springer, 2009. 免费版
【3】Bishop, Christopher M. Pattern recognition and machine learning. Vol. 1. New York: springer, 2006.
【4】
Introduction to Statistical Learning 免费版
【5】Wasserman, Larry. All of statistics: a concise course in statistical inference. Springer, 2004.
【6】
http://d3js.org/【7】
http://www.highcharts.com/
【8】
Coursera.org
【9】
http://flask.pocoo.org/

快速回帖

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系客服 关注微信 下载APP 返回顶部 返回列表