加入免费会员

Data Science Take Home Exercise 备考策略与面试题剖析

数据科学面试
Take home exercise备考策略与面试题剖析

Take home exercise 是数据科学面试中经常出现的考查形式,要求面试者在限定时间内基于给定的数据集去解决一个实际的问题,以 code 或者 report 的形式提交。在这篇Techie面经文章中,我们首先为大家总结 take home exercise 的题型和考察标准,之后基于实战面试题来梳理常见面试题考点和解答。

如果你想跟我一起体验数据科学面试流程, 为你指导面试备考或者答题过程中的问题, 欢迎报名参加Techie备受好评的数据科学集训营以及数据科学模拟面试服务. 我会用60+课时的时间,结合90+道数据科学面试真题, 以最高效地方式帮大家梳理数据科学知识体系, 并结合工业界级别的项目训练, 全方位提高大家的综合应用能力以及面试实战技巧. 如果你在数据科学备考或学习过程中有任何问题, 也欢迎扫描下方的二维码或者搜索 TonyCoding20 添加我的微信, 期待和大家的沟通!



1. 题型总结

根据岗位面试考察侧重点的区别,take home exercise 题型大致分为两大类:数据建模实验分析

  • 数据建模类问题主要考察面试者完成构建机器学习模型的能力,整个流程包括:数据清洗 (Data Cleaning/Data Preprocessing) -> 数据特征构建 (Feature Engineering) -> 模型训练 (Model Training) -> 结果分析 (Model Evaluation)。对应的建模问题可以简化为分类 (Classification) 或者回归 (Regression) 问题。一个常见例题是:根据用户的历史购买记录来预测用户是否会购买某给定的商品 (Classification Problem)。
  • 实验分析类问题侧重考察面试者 product sense 以及实验设计 (A/B Testing) 的能力,整个流程包括:定义metrics -> 分析数据 -> 找到改进方法 -> 设计实验。一个常见例题是:设计一个feature来提升用户留存率,要求给出具体的实验设计方案并对结果做出评估。

一般来说,每个公司给出的 take home exercise 的题目都与该公司产品/服务核心要解决的商业问题非常接近,推荐求职者在临考前阅读该公司的 tech blog,以此更好地了解公司的业务模式和产品特点。

 

2. 评价标准

结合各大厂的面试要求,我们总结 take home exercise 的评价标准一般分为三部分:

  • 系统性分析解决问题的能力。具体来说,要求求职者有能力从问题的定义出发 step by step 提出完整的 solution。有些求职者在面试中一味追求给出复杂的模型设计,而不是从问题的商业目标出发去思考问题,那么在这个部分就会丢掉很多分数。
  • 对基本统计模型知识的理解。这部分要求求职者对基础知识概念有深刻的理解,比如:“在 data preprocessing 阶段有哪些 missing value 处理方法?” “这些方法都有哪些优劣区别?” 等等。在后文的例子中我们也会再给大家举一些具体例子。
  • 结合数据建模分析结果对问题给出具体解决方案。这部分 insights 内容可以在 report 中通过 executive summary 的形式给出,关键要强调这部分工作能对公司 business 产生的具体impacts。

 

3. 实战面试题

下面我们结合数据以及若干 follow-ups 问题来分析一个具体商业案例:根据以下给定的数据集预测用户是否会购买某一类商品。

 

Q1. 在数据预处理过程 (Data Preprocessing) 中,有哪些主要需要注意的问题?

Q1.1. Missing value 问题

Missing value 分为 missing not at random (MNAR),missing at random (MAR) 以及missing completely random (MCAR)。我们可以先通过数据分析来判断该数据具体属于哪一种情况,然后根据 missing value 的比例来选择处理方法:如果 missing value 所占比例较多,则可以考虑直接删除该 feature,否则通过计算统计特征值或者 model-based 方法来impute missing values。

Q1.2. 异常值检测和处理

结合feature的定义来判断合理性。比如如果例子中 “# purchase last 6 month” feature出现负值,则需要做相应的删除或者 missing value 补齐处理。

 

Q2. 针对不同的 feature types,我们需要做哪些特殊处理?

Model features一般来说包括 numerical feature, categorical features, datetime features 以及 id 类的feature等等。

对于categorical features,比如上面例子中的 product category,我们可以使用很多不同的处理方法,包括one-hot encoding,target encoding 以及 label encoding 等。在这里还需要考虑不同方法的trade-offs,比如对于非常 sparse feature,one-hot encoding 可能导致 feature dimension 很大,因此必要做一些 dimension reduction。当然我们也可以使用neural network model 来对feature构造 dense embedding vectors,具体的讨论可以参考Techie面经论坛上的这篇帖子

对于 numerical features,我们可以对数据做 binning 处理,比如对于上面例子中的 login date feature,我们可以把它分成早、中、晚三个 bucket 来处理,以此更好地分析总结用户行为特征。

 

Q3. 在构造模型的过程中,要对数据做哪些处理?

Q3.1. 如何处理 model label 分布不均匀的问题?

从数据出发,我们可以做sampling处理。比如通过 downsampling 来减少 majority class,或者通过更复杂的 SMOTE 方法,最终使样本label分布更加平衡。从model 的角度,我们还可以对 loss function 做修改,对 minority class 的错误分类更大的惩罚,以此来平衡不同 labels 对 loss function的影响程度。

Q3.2. Training size 太大导致模型训练时间太长或者运算资源消耗太多,如何优化?

可以用sampled data来训练模型,同时为了避免sampling bias,可以使用诸如 stratified sampling或者 weighted sampling等方法。

 

Q4. How to evaluate model performance?

上面例子中的数据对应的是商品销售的业务场景,我们可以把问题建模为classification model (分类问题)。对应的metrics包括:

  • Offline evaluation metrics:precision, recall, F1-score, AUC.
  • Online evaluation metrics (for A/B Testing):conversion rate, revenue, MAU, etc.

 

Q5. 如何选择模型中哪些  features 比较重要?

对于logistic regression 用 feature coefficient 绝对值作为参考。对于tree based model,我们可以使用feature importance,partial dependence plot (PDP) ,sharpe ratio等数据来选择重要features。

 

Q6. 如果时间不够了,take home exercise没有做完怎么办?

有些 take home exercise 的限时只有2-3个小时,如果碰巧遇到比较复杂的问题,那么很可能无法面面俱到地完成全部建模分析工作。此时建议大家把剩余工作的计划列在report中。同时要在 final report 的开头加一段 summary,简单说明解决问题的方法以及你的主要结论。

 

希望这篇文章能给大家带来一些启发,如果大家对 take-home exercise 有任何问题,也欢迎扫描下方的二维码或者搜索 TonyCoding20 添加我的微信, 期待和大家的沟通!祝大家都能顺利通过面试,拿到理想的offer!