Data Scientist 面试题 2026:25 道 SQL、统计、A/B Test 与 ML 高频题
Data Scientist Interview Questions数据科学面试题数据科学家面试题SQL面试AB Test面试统计面试Product SenseDataScienceSQLmachinelearningA/Btesting

Data Scientist 面试题 2026:25 道 SQL、统计、A/B Test 与 ML 高频题

Data Scientist 面试题 2026 高频清单:25 道 SQL、统计学、A/B testing、机器学习、product sense 与业务分析题,附参考答案与追问方向。

Sam · · 15 分钟阅读

顶级科技公司的数据科学面试考察四个核心领域:SQL统计学机器学习产品思维。与编码面试不同,数据科学面试很少有一个”正确”答案——面试官评估的是你的思维过程、沟通能力以及将商业问题转化为分析框架的能力。

以下是 20 道最常问的题目,按类别分类,附带详细答案。

快速答案:Data Scientist 面试题怎么准备

如果你在准备 Data Scientist interview questions,不要只刷 SQL 或背机器学习概念。大厂 DS 面试通常会把 SQL、统计推断、A/B testing、product sense 和机器学习应用串起来,考察你能不能把一个模糊业务问题拆成指标、假设、数据、方法和行动建议。

高频模块面试官想看什么
SQL 面试题window function、join、聚合、留存/漏斗/收入指标计算
统计与 A/B Testp-value、confidence interval、sample size、MDE、实验护栏指标
机器学习bias-variance、特征工程、不平衡数据、模型评估和上线风险
Product Sense指标定义、异常诊断、用户分群、业务 trade-off 和沟通结构

如果时间有限,优先把 SQL + A/B testing + metric case 练到能现场解释推理过程,再补 ML 高频题。完整准备路线可以看 Data Scientist 面试准备完全指南

SQL 题目

1. 从员工表中找出第二高的薪水

为什么问这个问题: 测试你是否能超越基础聚合操作。

-- Approach 1: Using LIMIT/OFFSET
SELECT DISTINCT salary FROM employees ORDER BY salary DESC LIMIT 1 OFFSET 1;

-- Approach 2: Using a subquery
SELECT MAX(salary) FROM employees
WHERE salary < (SELECT MAX(salary) FROM employees);

-- Approach 3: Using window functions (most elegant)
SELECT salary FROM (
  SELECT salary, DENSE_RANK() OVER (ORDER BY salary DESC) as rnk
  FROM employees
) ranked WHERE rnk = 2;

关键提示: 一定要问清楚”第二高”是否指不同值。当存在并列时,DENSE_RANK()RANK() 有区别。

2. 编写查询找出每个类别收入最高的 3 个产品

WITH product_revenue AS (
  SELECT
    p.category_id,
    p.product_id,
    p.product_name,
    SUM(oi.quantity * oi.price) as total_revenue
  FROM products p
  JOIN order_items oi ON p.product_id = oi.product_id
  GROUP BY p.category_id, p.product_id, p.product_name
),
ranked AS (
  SELECT *,
    RANK() OVER (PARTITION BY category_id ORDER BY total_revenue DESC) as rnk
  FROM product_revenue
)
SELECT category_id, product_name, total_revenue
FROM ranked WHERE rnk <= 3;

关键提示: 窗口函数是面试中最常考的。熟练掌握 RANK()DENSE_RANK()ROW_NUMBER() 以及它们各自的使用场景。

3. 计算日活跃用户数的环比变化

WITH daily_users AS (
  SELECT
    DATE(event_timestamp) as event_date,
    COUNT(DISTINCT user_id) as active_users
  FROM user_events
  GROUP BY DATE(event_timestamp)
)
SELECT
  event_date,
  active_users,
  LAG(active_users) OVER (ORDER BY event_date) as prev_day_users,
  active_users - LAG(active_users) OVER (ORDER BY event_date) as dod_change
FROM daily_users;

统计学题目

4. 向非技术人员解释 p 值

优秀回答: “想象你在测试一个新的按钮颜色,看它是否能提高点击率。p 值告诉你的是:如果新颜色实际上没有任何效果,我们仅凭偶然运气就观察到这么大的差异的可能性有多大?p 值为 0.03 意味着这个结果纯属随机噪声的概率只有 3%。如果这个概率足够低(通常低于 5%),我们就得出结论:新颜色确实可能真的有区别。”

为什么重要: 这测试的是你解释统计学概念的能力——这是数据科学家每天的必备技能。

5. 第一类错误和第二类错误有什么区别?

  • 第一类错误(假阳性): 拒绝了实际上为真的零假设。举例:得出药物有效的结论,但实际上无效。
  • 第二类错误(假阴性): 未能拒绝实际上为假的零假设。举例:得出药物无效的结论,但实际上有效。

现实中的权衡: 在医学检测中,通常希望最小化第二类错误(不能漏诊)。在垃圾邮件检测中,希望最小化第一类错误(不要把正常邮件标记为垃圾邮件)。

6. 如何确定 A/B 测试的样本量?

你需要四个输入:

  1. 基准转化率(来自历史数据)
  2. 最小可检测效应(MDE)——你关心的最小变化幅度
  3. 统计显著性水平(α)——通常为 0.05
  4. 统计功效(1-β)——通常为 0.80

经验法则: 效应越小,需要的样本量越大。如果你的基准转化率是 10%,想检测 5% 的相对提升,大约需要每组 15,000 个用户。一定要在启动实验前计算这个值。

机器学习题目

7. 如何处理不平衡数据集?

多种策略,根据场景选择:

  1. 重采样: 过采样少数类(SMOTE)或欠采样多数类
  2. 类别权重: 让模型对少数类误分类施加更大的惩罚
  3. 阈值调整: 将分类阈值从 0.5 向少数类方向移动
  4. 异常检测框架: 将少数类视为异常点(隔离森林、单分类 SVM)
  5. 集成方法: 使用平衡子样本的 Bagging

面试官想听到的: 你理解在不平衡数据上使用准确率是一个具有误导性的指标。应该使用精确率、召回率、F1 分数或 ROC-AUC。

8. 解释偏差-方差权衡

  • 高偏差(欠拟合): 模型太简单,无法捕捉训练数据中的模式。解决方法:使用更复杂的模型、增加特征。
  • 高方差(过拟合): 模型太复杂,记住了训练数据但在新数据上表现不佳。解决方法:正则化、增加数据、特征选择、交叉验证。

类比: 想象准备考试。高偏差 = 你学习不够。高方差 = 你背下了练习题但不会做新题。

9. 什么时候用分类,什么时候用回归?

  • 分类: 输出是类别(垃圾邮件/正常邮件、流失/不流失、疾病/健康)
  • 回归: 输出是连续数值(房价、温度、薪水)

灰色地带: 如果你预测”流失概率”作为一个概率值,这从技术上讲是回归(逻辑回归输出概率),但用于分类。准备好讨论这个细微差别。

产品思维题目

10. YouTube 昨天观看时长下降了 10%,你会如何调查?

框架:细分 → 隔离 → 诊断 → 建议

  1. 验证: 测量是否正确?检查数据管道是否有 bug。
  2. 按以下维度细分:
    • 地理位置(是特定国家吗?)
    • 设备(移动端 vs 桌面端?)
    • 内容类型(短视频 vs 长视频?)
    • 用户群体(新用户 vs 老用户?)
  3. 检查近期变更: 新发布?A/B 测试?基础设施变更?
  4. 外部因素: 竞争对手发布、节假日、网络问题
  5. 建议: 根据根本原因,提出修复方案并衡量其影响

关键: 没有”正确”答案。面试官评估的是你系统性思考和缩小可能性范围的能力。

11. 你会如何衡量一个新功能的成功?

使用 HEART 框架(Google 的方法):

  • Happiness(满意度):用户满意度(调查、NPS)
  • Engagement(参与度):使用的频率和深度
  • Adoption(采用率):尝试该功能的新用户
  • Retention(留存率):回访用户
  • Task success(任务完成度):用户能否达成目标?

选择 1-2 个核心指标和 3-5 个护栏指标,确保你不会为了优化一个方面而破坏另一个方面。

更多常问问题

12. 什么是交叉验证,为什么使用它?

K 折交叉验证将数据分成 K 个子集,在 K-1 个折上训练,在剩余的折上验证。重复 K 次。这比单次训练/测试划分给出了更可靠的模型性能估计,尤其在数据有限的情况下。

面试加分点: 提到分层交叉验证(Stratified K-Fold)——确保每一折的类别比例与原始数据一致,对分类问题尤其重要。对于时间序列数据,要用前向验证(Forward Validation)而不是随机划分,因为未来数据不能用于训练。

13. 如何处理缺失数据?

  • 如果缺失少于 5% 且随机(MCAR),删除行/列
  • 数值/分类变量使用均值/中位数/众数填充
  • 使用基于模型的填充(KNN、MICE)
  • 创建”缺失”指示变量(有时缺失本身就有信息量)

进阶技巧: 区分三种缺失机制——MCAR(完全随机)、MAR(条件随机,如男性更可能报告收入)、MNAR(非随机,如高收入者更不愿意报告收入)。不同机制需要不同的处理策略。MNAR 是最难处理的,通常需要领域知识或专门模型。

14. 什么是特征工程?

从原始数据创建新特征以提升模型性能。举例:从时间戳中提取星期几、创建交互项、对连续变量分箱、从原始文本生成文本嵌入。

实战案例: 在电商推荐场景中,用户浏览时长、加购次数、收藏行为的组合特征比单一特征预测转化率高出 30%。特征工程的核心是理解业务——你需要知道哪些用户行为真正反映了购买意向。

15. 如何评估推荐系统?

  • 离线评估: Precision@K、Recall@K、NDCG、MAP
  • 在线评估: 点击率、转化率、推荐多样性
  • A/B 测试: 与基线对比(基于流行度的推荐)

常见陷阱: 离线评估高不代表在线效果好。离线评估只看模型预测准确性,但用户可能点击推荐不是因为推荐准确,而是因为标题吸引人或位置靠上。一定要同时监控多样性指标——如果推荐全是同类内容,用户会疲劳。

16. 梯度下降是如何工作的?

梯度下降通过迭代更新参数来最小化损失函数。每次更新沿着损失函数梯度的反方向移动,步长由学习率控制。

面试官常追问:

  • 学习率太高: 震荡不收敛
  • 学习率太低: 收敛极慢
  • 动量(Momentum): 加速收敛,避免局部极小值
  • Adam 优化器: 自适应学习率 + 动量,是目前最常用的优化器

17. 解释正则化(L1 vs L2)

正则化通过给损失函数添加惩罚项来防止过拟合:

  • L1(Lasso): 添加权重绝对值之和。倾向于产生稀疏解(很多权重变为 0),具有特征选择的效果。
  • L2(Ridge): 添加权重平方之和。倾向于让权重变小但不为 0,压缩所有特征的影响。

如何选择: 如果特征维度高且你怀疑很多特征是冗余的,选 L1。如果所有特征都可能有贡献但需要控制幅度,选 L2。Elastic Net 同时使用两者,兼顾两种优点。

18. 什么是过采样和欠采样?各有什么优缺点?

处理不平衡数据的基本技术:

  • 过采样(Over-sampling): 复制少数类样本或使用 SMOTE(在少数类样本间插值生成新样本)。优点是保留所有多数类信息,缺点是可能过拟合。
  • 欠采样(Under-sampling): 随机删除多数类样本。优点是训练速度快,缺点是丢弃了大量有价值的数据。

最佳实践: 通常结合两种方法——先欠采样减少多数类,再过采样增加少数类,使比例接近 1:1 或 1:2。

19. 解释 ROC 曲线和 AUC

  • ROC 曲线: 横轴是假阳性率(FPR),纵轴是真正性率(TPR),不同分类阈值下的 TPR/FPR 组合绘制成曲线。
  • AUC: ROC 曲线下面积。AUC = 1 表示完美分类器,AUC = 0.5 相当于随机猜测。

什么时候不用 AUC: 在极度不平衡的数据集上(如欺诈检测,正样本占比 0.1%),AUC 可能给出虚假的乐观结果。此时用 Precision-Recall 曲线更合适。

20. 如何设计一个用户流失预测模型?

完整的回答框架(面试官想看这个):

  1. 定义问题: 什么是”流失”?(7 天不登录?30 天?取消订阅?)定义直接影响数据标注。
  2. 特征工程: 用户行为(登录频率、使用时长、功能使用广度)、账户信息(注册时间、付费状态)、交互数据(客服工单数、投诉次数)。
  3. 模型选择: 逻辑回归(可解释性强)作为基线,XGBoost/LightGBM 作为主力模型。
  4. 评估指标: 在流失场景下,召回率比精确率更重要——宁可多预警也不要漏掉真正要流失的用户。
  5. 部署与迭代: 模型上线后监控漂移(概念漂移和数据漂移),定期重新训练。

进阶高频题

21. SQL:计算 7 日留存率

考察点: cohort 分析、self join 与日期窗口处理,DS 岗 SQL 轮的高频压轴题。

参考答案:

WITH first_seen AS (
  SELECT user_id, MIN(event_date) AS first_date
  FROM user_events
  GROUP BY user_id
),
returning AS (
  SELECT f.user_id, f.first_date, MIN(e.event_date) AS return_date
  FROM first_seen f
  JOIN user_events e
    ON f.user_id = e.user_id
   AND e.event_date > f.first_date
   AND e.event_date <= f.first_date + INTERVAL '7 day'
  GROUP BY f.user_id, f.first_date
)
SELECT f.first_date,
       COUNT(DISTINCT f.user_id) AS cohort_size,
       COUNT(DISTINCT r.user_id) AS retained_users,
       ROUND(COUNT(DISTINCT r.user_id) * 1.0 / COUNT(DISTINCT f.user_id), 4) AS retention_rate
FROM first_seen f
LEFT JOIN returning r ON f.user_id = r.user_id
GROUP BY f.first_date
ORDER BY f.first_date;

追问方向:

  • 留存口径:7 日内任意一天回访(N-day return)还是第 7 天当天回访(Nth-day retention)?
  • 时区处理:event_date 用 UTC 还是用户本地时区切分 cohort
  • 表很大时怎么优化:按天分区、预聚合物化 cohort 表

22. 置信区间和 p 值有什么区别?

考察点: 统计推断的实用理解,而不是背定义。

参考答案:

  • p 值回答”如果原假设为真,观察到当前或更极端结果的概率”——它不直接告诉你效应有多大。
  • 置信区间回答”效应量大概率落在哪个范围”——95% CI 不包含 0 等价于双尾 α=0.05 显著。
  • 更好的回答方式是同时报告效应量 + CI:“转化率提升 0.4 个百分点(95% CI [0.1, 0.7])“,比单说 p=0.03 信息量大得多,也避免被质疑 p-hacking。

追问方向:

  • CI 宽度受什么影响(样本量、方差、置信水平)
  • 为什么越来越多公司要求实验报告 CI 而不是只看显著性

23. A/B 测试同时看多个指标会出什么问题?

考察点: 多重比较(multiplicity)与实验设计的严谨性。

参考答案:

  • 同时检验 k 个指标,至少出现一个假阳性的概率随 k 上升,只看”显著”的那个会系统性高估效果。
  • 常见处理:预先指定一个主指标(primary metric)+ 若干 guardrail metrics,次要指标只做描述性观察,或用 Bonferroni / FDR 校正。
  • 还要提 peeking:提前看结果并停止实验会显著抬高假阳性率,需要 sequential testing 或 always-valid p-value。

追问方向:

  • 主指标不显著但次要指标显著提升,上线吗?
  • guardrail 指标的阈值怎么定

24. 模型上线后怎么监控效果?

考察点: ML 落地意识——DS 岗区分”会调包”和”能做生产模型”的关键题。

参考答案:

  • 三层监控:数据层(特征分布、缺失率、label 延迟)、模型层(预测分布、PSI/KS 漂移)、业务层(线上 AUC、转化率等业务指标)。
  • 区分数据漂移(输入分布变了)和概念漂移(输入-输出关系变了),两者的处置不同。
  • 实操:设告警阈值 + 定期 retrain 策略 + shadow model 对比新旧模型预测。

追问方向:

  • 线上 AUC 和离线 AUC 不一致,怎么排查(数据管道 bug、特征穿越、样本选择偏差)
  • 冷启动用户没有历史特征怎么办

25. 不能做 A/B 测试时,怎么评估策略的因果效应?

考察点: 因果推断基础,近两年 DS 面试明显变热的方向。

参考答案:

  • 先说清楚为什么不能随机化(成本、伦理、已经全量 rollout)。
  • 常用方法:DID(双重差分,依赖平行趋势假设)、propensity score matching(匹配后对比,检查协变量平衡)、synthetic control(适合单一处理单元)。
  • 关键是把假设讲明白:DID 要检验平行趋势,PSM 要检验匹配后的 covariate balance。
  • 加分点:主动说明”这些都是 A/B 的降级方案,结论强度更弱,需要敏感性分析”。

追问方向:

  • 平行趋势假设不满足怎么办
  • 处理组和对照组本身增长趋势不同(比如只对成熟用户开放功能),怎么控制

数据科学面试准备:时间线

第 1-2 周: SQL 练习(在 LeetCode/DataLemur 上完成 20+ 题目) 第 3-4 周: 统计学基础 + 概率问题 第 5-6 周: 机器学习理论——注重直觉,而非数学证明 第 7-8 周: 产品思维案例 + 指标定义 第 9 周及以后: 模拟面试(完整的 45 分钟模拟)

资源推荐

  • SQL: DataLemur、StrataScratch、LeetCode 数据库题目
  • 统计学: Charles Wheelan 的《Naked Statistics》、Khan Academy
  • 机器学习: Aurélien Géron 的《Hands-On Machine Learning》
  • 产品思维: Kohavi 的《Trustworthy Online Controlled Experiments》

总结

数据科学面试同等看重沟通能力和技术能力。练习大声解释你的推理过程——不仅仅是写出答案。最优秀的候选人是那些能一步步带领面试官走过他们思维过程的人。


Data Scientist 面试题 FAQ

Data Scientist 面试最应该先准备什么?

如果目标是美国科技公司,优先级通常是 SQL、A/B testing、统计推断和 product sense。ML 理论也重要,但很多 DS 岗位会先用 SQL 和业务分析题判断基本面。

SQL 面试题要刷到什么程度?

至少要熟练 window function、CTE、self join、去重、留存、漏斗、top N、rolling metric 和 cohort analysis。面试时不只要写对查询,也要说明边界条件,例如并列排名、时区、重复事件和 NULL。

A/B Test 面试题常见追问有哪些?

常见追问包括样本量怎么估、实验多久跑、指标下降但主指标上升怎么办、如何处理 novelty effect、guardrail metric 怎么设,以及结果不显著时下一步怎么做。

Product Sense 题怎么回答才不散?

用“目标 - 指标 - 分群 - 假设 - 验证 - 行动”的结构回答。不要直接给结论,先澄清业务目标和数据口径,再用分层分析缩小原因。

数据科学面试和数据分析师面试有什么区别?

核心模块相同(SQL、统计、实验、product sense),但 DS 岗对统计推断、实验设计深度和 ML 基础的要求更高,会追问假设检验的细节和模型选择逻辑。分析师岗更偏取数、报表和业务描述性分析。两类岗位同时投的话,按 DS 标准准备,分析师岗位自然覆盖。

DS 面试的机器学习需要学到什么深度?

能说清常见算法(线性/逻辑回归、树模型、SVM、基础神经网络)的原理、适用场景和优缺点即可,不需要推导公式或手写实现。更重要的是能回答“这个场景为什么选这个算法、怎么评估、上线后怎么迭代”。

只有 2 周准备时间,优先级怎么排?

第 1 周:SQL window function + 实验设计(样本量、显著性、guardrail metrics)。第 2 周:product sense + 统计基础(p 值、CI、多重比较)。SQL 和 A/B 各做一次完整 45 分钟 mock。深度 ML 理论不要花时间,性价比最低。


推荐阅读


DS 面试全流程系列

想要深入了解目标公司的 DS 面试风格?我们整理了以下公司的详细面经:


想要获得数据科学面试准备的个性化反馈?查看 数据科学家面试辅导,或 联系我们,我们会为你量身定制学习计划。

S

关于作者

Sam 是 Interview Coach Pro 的技术面试教练,长期辅导在美国求职的中文候选人准备 SDE、System Design、Behavioral、Data Engineer 和 ML Engineer 面试。

本文基于匿名面试复盘、公开岗位要求和一对一辅导中的高频问题整理,发布前会检查内容结构、术语准确性和可操作性。你也可以查看我们的 辅导团队辅导方法

相关面试辅导

如果你正在准备类似面试,可以直接从下面的专项辅导开始。

准备好拿下下一次面试了吗?

获取针对你的目标岗位和公司的个性化辅导方案。

联系我们