Data Science

什么是Data Science

随着科技的发展,社会拥有数据规模增长很快,每时每刻都有大量数据被产生和存储下来。数据量的增大和数据的多样化也促进了很多公司进行数据分析来支持商务决策。比如在线电商网站如天猫, Amazon会根据你的网页浏览记录给你推荐商品并且调整产品显示顺序,Netflix 会分析客户看影视作品的历史记录来推荐最合适的电影,抖音等短视频软件会根据用户实时的行为来实现下一个视频推荐等等。简单来说,Data Science这个领域要解决的核心问题就是对大量复杂的数据进行处理从而提取有意义的信息来指导对应的商业决策。

Data Science里的五花八门

一般来说,数据科学的职位方向有下面四种

A picture containing shape

Description automatically generated

Data Analyst

这个职位对建模能力要求较低, 比较适合刚接触数据科学或者转专业换背景的同学。工作内容偏向于结合数据分析实际商业问题, 并将分析的结果转化为切实可行的商业方案,比如定义评价指标, 为产品方向提意见等等。岗位所用的工具一般比较基础, 最核心的是用SQL 来获取整理数据, 用R/Python做简单的分析、用Tableau/Excel作图,在统计和模型方便,懂得基本的回归预测模型等即可满足大部分要求。


Data Scientist

这个岗位的工作内容主要是以建模为主,与Data Analyst相比对编程能力要求较高, 不仅需要熟练的SQL 技能, 还对 Python/R 等变成有着较高要求。除了要求基础统计知识, 对机器学习能力也有要需求, Data Scientist一般能独立的完成数据科学分析问题, 所以还需要对用数据科学解决问题的流程和方法十分了解, 懂得如何将复杂的商业问题转化为统计和机器学习可以解决的问题, 然后据此设计技术方案,比如各种定价系统,金融行业的Fraud Detection,电商的推荐系统等等。最后 Data Scientist 一般会有不同的领域之分, 不同领域也有一定自身领域知识的要求, 比如产品, 内容, 市场, 用户等等。


Data Engineering

类似于软件工程师, 但是围绕着大数据领域的工程问题。这个岗位对编程技术含量相对较高,工作内容主要是开发大数据的 ETL (提取, 转换, 存储) Pipeline来处理数据,除此之外对于大数据的生态系统及对应工具 (例如: Hadoop, Spark, MapReduce, Splunk, Hive, etc.) 也需要有较好的了解与实践经验。


Research/Machine Learning Scientist

类似于增强版的偏向于研究方向的 Data Scientist, 对研究探索能力有较高要求, 可能需要解决一些不存在现成方法的问题, 或者是需要前沿技术的问题, 能独立读 Paper 确定可行方向或者研究计划, 一般需要有 PhD 学位或者 MS 学位加多年工作经验, 这些职位一般更多的是面向有经验的面试者开放。

做Data Science的优点

作为21世纪“最性感”的行业,数据科学有以下优点:


前景

在全球范围内,数据科学需求量都非常可观, 提供给求职者很多机会。作为领英上增长最快的工作,预计到2026年将创造1150万个数据科学岗位。这使得数据科学成为21世纪“最性感”的行业 。 


薪资

数据科学是收入最高的行业之一。以美国为例,根据Glassdoor网站统计,美国的初级数据科学家每年的平均收入都能达到113,000美元。这使得Data Science成为一个利润丰厚的职业选择。 


全面提升硬实力

数据科学的工作需要强大的数学统计知识以及编程技巧,掌握这些技能对于个人成长,以及职业发展都打下了坚实的基础。 


工作内容有成就感

数据科学帮助各个行业实现冗余任务的自动化,帮助公司作出基于数据理论的明智决策。各行各业的公司都会依赖数据科学为自身或者客户提供帮助,这让数据科学家在公司中享有重要的地位。

薪酬、工作时长

以美国为例,入门级的数据科学家(Data Scientist)的薪水在$90K-$140K左右, 高级数据科学家的薪水可以达到 $250K-$300K, 资深数据科学家可以超过$400K

数据科学家的平均工作时间通常比较固定,一般是每周40小时左右,但由于项目的原因, 在一些核心部门或者某些时间段可能会有适当加班, 显得比较忙碌, 但一般不会造成困扰。 但整体而言, 数据科学家的工作量并不是很大大, 特别是对于有经验的数据科学家。

未来发展路径

数据科学家也是基于技术的职位, 在职业生涯阶段可以从入门机数据科学家逐步进阶为中级数据科学家, 高级数据科学家甚至资深数据科学家。数据科学家的职业中后期也可以转型管理, 变成 Data Science Lead 或者 Data Science Manager, 从而进行更多方向性和领导性的工作。

基于数据科学家技术的积累, 如果有很强的工程实践能力, 可以转型成 Machine Learning Engineer, 如果有很强的分析和研究能力, 也可以转型成为 Machine Learning Scientist等。

常见公司

数据科学的常见公司大致可以分为这几类: 


上市公司

上市公司中Google, Facebook, Netflix的薪水和面试难度都是行业里的标杆。此外Amazon, Microsoft, LinkedIn, Bloomberg, Apple也都是值得一去的一流公司。业界流传的“FAANG”就是指的Facebook,Apple,Amazon,Netflix,Google。

 

独角兽公司

类似Uber, Lyft, Airbnb, Robinhood这样的独角兽公司门槛不低于以上的上市公司,而且工作节奏更快所以很适合更有野心也愿意接受风险的数据科学家。


金融、咨询公司

金融和咨询行业中有一些公司也拥有数据科学部门或者岗位,但通常都是规模较大的公司或者公司业务非常需要数据科学支持,如一些对冲基金:Two Sigma, DE Shaw, Citadel, Hudson River Trading, Jump Trading。银行包括八大投行JP Morgan, Goldman Sachs等等都有数据科学的职位。咨询公司中也有越来越多的数据科学咨询顾问的出现,例如McKinsey,Mercer,Capgemini等等。 

申请流程、时间线

New Grad全职职位需要在入职前一年的10月中旬之前投完简历。比如要2025年暑假入职那就得在2024年的10月中旬之前完成申请。

申请途径分三种:公司官网,校招(Career Fair),和内推(Referral)。对于申请New Grad职位的应届毕业生来说校招是最容易拿到面试的,所以在Career Fair上务必好好表现。对于已经有Industry经验的Experienced Candidate来说内推无疑也是非常有效的渠道之一。

New Grad Candidates要让自己从同学中脱颖而出,最重要的是要有实习经历 (Internship)和业界的项目经历(Industry Projects)。如果不知道从哪里获取项目经历,Offer帮的数据科学·机器学习求职实战营里会有12大行业名企实战项目,帮助你补充这部分的相关经历。所以如果要在2024年10月中旬之前完成申请的话就必须有到2024年的暑假实习。暑假实习的时间表和全职的时间表相似,也就是说在2023年的十月中旬前要申请2024年的暑假实习。

如何为入行做准备

在Data Science的面试中,同学们不但需要展现自己的优秀的基本功, 还有注重沟通, 表现出自己具有商业意识 (Business Sense) 的一面。一般来说,数据科学的面试会考量同学们以下几种能力:编程能力(Coding Practice), 统计和机器学习知识与应用(Stats and Machine Learning)、案例分析能力(Data Science Case Study) 和行为软实力(Behavior)。


编程能力(Coding Practice)

编程能力是数据科学的基本功, 在真正的工作中, 并不会有人为数据科学家准备好完整现成的数据, 数据科学家需要基于自己的理解与判断从复杂的原始数据中获得提炼有价值的信息, 而这个过程需要不错的编程能力作为保证, 良好的编程能力是开始数据科学工作的基础. 核心的编程主要要求 SQL 和 Python/R, 对 Easy to Medium Level 的数据结构, 算法和算法复杂度分析的知识也有考察。


统计和机器学习知识与应用(Stas and Machine Learning)

统计和机器学习的知识是 Data Scientist进行建模的基础, 也是区别于 Data Analyst 的主要方面。对于大部分理工科背景的的同学而言, 通过简单地统计知识回顾和SQL 编程培训便可以基本胜任 Data Analyst 的工作, 但是机器学习的知识与应用经验的积累确是无法在短期内速成。所以对于要在 Data Scientist 职位脱颖而出的同学, 统计和机器学习的知识至关重要。

典型的机器学习理论知识包括:

  1. Logistic Regression 的代价函数是怎么得到的? 如何推导 Logistic Regression 梯度更新公式?
  2. 比较下 Logistics Regression, SVM, Decision Tree这几种模型在分类问题上各有什么优劣?
  3. 随机森林模型中有哪些随机性是如何添加的? XGBoost 与标准梯度提升决策树有什么不同?
  4. 什么是过拟合, 哪些模型在哪些情况下容易过拟合, 在不同的模型中如何避免过拟合?
  5. 正则化为什么能缓解过拟合? 为什么 L1 正则化会将模型参数推向 0, 而 L2 正则化不会?

典型的机器学习应用知识包括:

  1. K-means 聚类中如何选 K? 什么样的数据适用于 K-means? 为什么 K-means 比别的方法更为常用?
  2. 基于树类的模型在分类任务时如何在连续变量上选择决策边界? 如何用基于树的模型进行特征设计?
  3. Predictive Model中如何设计基于年龄, 地理位置的特征? 如何设计上下文情景的特征 (例如, 用户过去 7 天看视频的兴趣)?
  4. 不清楚任何模型细节的情况下(即模型是一个黑箱)如何计算不同特征的重要性? 如果模型把某一个样本分错了, 到底是哪些特征占了主要因素?


数据科学案例分析(Case Studies)能力

数据科学案例分析能全面考查一个面试者是否懂得独立解决一个数据科学问题的过程和这个过程中所涉及到的诸多细节. 案例分析的问题多种多样, 一般而言会合面试官自身的工作略微相关, 通过考查面试者对于数据科学案例分析问题的思考过程, 面试官可以很容易看出面试者的强项和弱项, 从而对于面试者的综合能力有较好的判断.

案例分析的核心考察点一般包括:

  1. 实际问题领域的背景知识
  2. 将实际问题转化为机器学习问题能力
  3. 数据收集的想法和探索性数据分析能力
  4. 数据预处理和特征提取的技巧
  5. 机器学习模型的理论与应用知识
  6. 模型评价, 选择及优化的能力
  7. 模型解释的能力


以上硬技能相关的部分,一般需要以实习或者业界相关项目的形式体现在简历中。


行为软实力(Behavior)

行为面试的部分主要考查求职者自身的性格特点, 经历, 处理问题习惯以及与团队工作内容和公司文化等的匹配程度, 整体而言与其他 Technical 职位类似, 此处不再赘述.

面试考点解析

建议同学们从以下几个方向来着手准备面试:


行为面试(Behavioral Interview)

数据科学岗位的行为面试题与其它岗位的面试并没有太大区别,面试官会考核求职者的软技能,了解求职者能否适应公司的企业文化,以及是否适合应聘的团队。


数学 & 统计学

数据科学家岗位的数学面试题,不光需要求职者能够执行算法,还需要能根据特定目的调整算法的能力。统计学知识对解决数据科学问题也同样至关重要。统计推理能力和统计学理论测试十分常见,一定要牢记常用的统计学概念,比如I型错误、II型错误,熟练掌握各种概率分布概念。

 

编程

面试数据科学岗位,尤其是数据工程师岗位,算法编程无疑是必考项。这个环节可以参考软件工程师的面试,公司常用开发工具和编程综合理论是常考的内容。大多数数据科学岗位通常不会要求求职者面试现场编写代码,而是更加着重考验求职者对于编程知识的理解与掌握。

 

场景 & 案例

这类型的面试题旨在测试求职者提交整体产品的思路。情景问题并不着重于各领域的知识细节,而是需要求职者描述从开始规划到交付产品的各个环节,目的是要了解求职者哪些方面的知识存在不足。这个问题除了评估求职者设计产品的全面知识,还要测试求职者的团队管理能力与协同能力。