刚结束 capital one 的 DS 全流程面试,岗位是 mid-level data scientist(不是 analyst track,是 DS track)。我做了很详细的笔记,全部分享。
结构(共 5 轮): recruiter screen(30 分钟):简历、背景、comp range 跟 DS 的 technical screen(45 分钟):SQL + 一些 stats case study(60 分钟):现场产品/业务 case,见下 coding(python)面试(45 分钟):不太偏 ML,更偏 pandas/数据处理 behavioral(45 分钟):STAR,两位面试官
SQL 轮: 这是认真的。他们在 DS 层级就是 SQL 导向。你会写 query。我这次是: 三张表的 join-heavy query(transaction、customer、account) 一个 window function 问题(在每个 product category 里按 spend 给 customer 排名) 一个关于在时间序列消费数据里找异常的问题
他们想要的是干净、可读的 SQL,不只是结果对。这里 CTE 比嵌套子查询更好。
stats 轮(同一个面试官): 偏概念,但很具体。问题: 向一个非技术 PM 解释 p-value 如果我们在 A/B test 里看到 5% lift,怎么判断它是不是真的 在 fraud model 的语境下,type I 和 type II error 的区别是什么(很贴题也很 on-brand) 你怎么处理 class imbalance
business case: 给定:credit card 客户数据,过去 90 天某个 merchant category 的平均 transaction size 大幅下滑。搞清楚发生了什么,以及你会怎么建议。
实际上不会给你数据。你需要自己搭建调查结构,说你会拉哪些数据、测哪些假设、按什么顺序。他们会打断问澄清问题。这轮主要看结构化思考,以及能否和业务 stakeholder 沟通。
python 轮: pandas 为主。读 csv,清洗(缺失值、错误 dtypes),算一些聚合,输出 summary table。不是 scikit-learn,也不是建模。他们想看你能不能高效处理脏数据。