机器学习基础 面试题
机器学习面试题:算法岗一面的公共科目
不管你投 CV、NLP 还是推荐,一面几乎都会从偏差方差、正则化、树模型问到评估指标。面试官不看你背了多少公式,而是看你能不能把"为什么"讲清楚——同一个问题,初级答定义,高级答边界条件。
这个方向在考什么
- 偏差-方差与过拟合:从数据量、模型复杂度、正则化三个角度解释同一个现象
- 树模型与集成:GBDT / XGBoost / LightGBM 的差异,XGBoost 为什么用二阶导
- 评估指标:AUC 的物理含义、类别不平衡时 accuracy 为什么会骗人
- 特征工程:缺失值、类别特征、特征穿越——面试官最爱追问的实操点
最常见的几个坑
- 只背公式不讲直觉:AUC 说成"ROC 曲线下面积"就结束了
- 把 LightGBM 的 leaf-wise 说成"更快",讲不出它的过拟合风险
- L1/L2 只说"一个稀疏一个平滑",画不出几何解释
七天准备路线
- 第 1 天把偏差方差、正则化、损失函数串成一条线,能互相解释
- 第 2 天树模型专场:三种 GBDT 实现的差异与适用场景
- 第 3 天指标专场:AUC / KS / F1 / PR 曲线,各自在什么数据分布下失效
- 第 4 天特征工程:准备 2 个你真实处理过的脏数据案例
- 第 5-7 天按方向刷题,练"顺着追问往下答"而不是背结论
机器学习基础高频面试题
- Adam 和 SGD 的区别是什么?为什么很多视觉任务最终还用 SGD + momentum,而 NLP/大模型训练几乎都用 AdamW? · 1-3 年
- 请解释偏差-方差权衡。如果一个模型训练误差很低、测试误差很高,你会怎么处理? · 校招
- GBDT 和 XGBoost 的关系是什么?XGBoost 相比 GBDT 做了哪些工程与数学上的改进? · 1-3 年
- L1 和 L2 正则的区别是什么?为什么 L1 能产生稀疏解?从几何角度解释一下。 · 1-3 年
- 样本极度不平衡(正样本 1%)时,你会怎么评估和建模?为什么不能只看准确率? · 1-3 年
- 交叉验证有哪些方式?时间序列数据为什么不能用随机 K 折?你实际项目里怎么切? · 1-3 年
- 你的模型预测概率偏高或偏低(校准差),怎么发现、怎么修?为什么 AUC 高不代表概率准? · 3-5 年
- 特征重要性你一般怎么看?树模型的 gain 重要性和 permutation importance 各有什么局限? · 1-3 年
- 线上服务要你对一个模型做上线前的效果预估,但没法直接做 A/B,你会怎么估?有多大把握? · 5 年以上
- 你在做一个点击率预估模型,训练集 2000 万条,真实正样本率是 1%。你用带截距的逻辑回归训练完之后,验证集 AUC=0.78(看起来正常),但把验证集上的预测概率求平均得到 0.29。请说出你会按什么顺序排查,每一步的判据是什么。 · 1-3 年
- 某推荐场景有 3 亿条训练样本、2 万维特征(约 95% 的取值为 0,以稀疏 one-hot 为主)。业务要求:全量重训能在 2 小时内跑完,线上单次预测 p99 < 10ms,资源只有 CPU 集群、没有 GPU。现在有三个方案:(A) 逻辑回归 + FTRL 在线学习,边服务边更新;(B) 逻辑回归 + L-BFGS 离线全量重训,每天一次;(C) 直接换成 2 层 MLP。请给出你的选型,并说清楚在什么监控信号出现时你会推翻它。 · 3-5 年
- 线上一个 LR 二分类模型,每天全量重训,离线训练 AUC 稳定在 0.790,但近 7 天线上 AUC 从 0.780 单调掉到 0.762;模型容量、特征列表、样本量都没有改动。PM 要求本周内把模型换成 XGBoost 来提效果。你作为模型负责人,第一周会做什么?请给出你的归因顺序和判断依据。 · 5 年以上
- 一个 5 万样本、50 维的二分类任务,你直接用 SVC(kernel='rbf') 训练,跑了一小时没跑完、内存也吃紧。换成 LinearSVC 后 3 分钟训完,但验证集 F1 掉了 4 个点。请说明 RBF 核在这里慢在哪,并给出 2~3 条能同时保住效果的替代方案。 · 1-3 年
- 手头数据 2 万条样本、200 维稠密特征,正负样本基本平衡,画图看决策边界明显非线性。候选方案:(A) RBF 核 SVM;(B) 线性 SVM + 人工构造的交叉特征;(C) GBDT。约束是:只能在一台 16 核 CPU、无 GPU 的机器上训练,要求 30 分钟内训完,之后每月重训一次。你选哪个,并说清核 SVM 在这个规模下的瓶颈具体在哪。 · 3-5 年
- 一个 200 万样本、300 维稠密特征的二分类任务,正负比约 1:50,线上要求单条推理 P99 小于 1ms。团队里有人提议用 RBF 核 SVM,理由是「非线性强、对小样本效果好」。你怎么评估这个方案?会追问哪些信息,最后给什么结论? · 5 年以上
- 训练一个 CART 二分类树,10 万样本、30 个特征,其中一个是“用户 ID”,有 5 万个不同取值。你不加任何限制直接训练,训练集准确率 0.99、验证集 0.71。把 max_depth 限制到 6 之后,用户 ID 仍然出现在根节点附近。请解释原因,并给出你处理这个特征的方案。 · 1-3 年
- 风控团队要一个能直接落成 if-else 规则、业务方逐条能看懂的分模型。数据 80 万条、150 个特征(其中 40 个是金额、账龄这类连续特征),正样本率 3%。你打算用 ID3、C4.5、CART 里的哪一个?连续特征的分裂点怎么定?深度和叶子规模怎么控? · 3-5 年
- 训练一个树模型时,把取值 300 万的 user_id 和若干高基数类别特征直接喂进去,训练集 AUC 0.99、验证集 AUC 0.75。你作为负责人怎么定位这个问题、怎么处理?同时说明树为什么特别容易在这类特征上「记住」训练集。 · 5 年以上
- 你用随机森林(500 棵树、默认参数)做特征筛选,输出的重要性排名里,一个连续特征 A 排第一,重要性是第二名的 3 倍。但你把 A 整列打乱后重新评估,模型 AUC 只掉了 0.002。请解释这个矛盾,并说明你会用什么方式重新评估特征重要性。 · 1-3 年
- 一张 50 万行、300 列的表格数据,其中大约 20 个特征预测力很强,其余 280 个基本是噪声。团队想直接用随机森林:一边输出特征重要性排序给业务,一边把模型上线,要求线上 p99 < 50ms。你觉得随机森林的默认 MDI 重要性在这份数据上会出什么问题,你会怎么修正?另外,为什么这里不直接用单棵树? · 3-5 年
共 94 道,这里列出前 20 道。 去题库检索
针对你的简历,生成一套这个方向的题
题目会挂回你简历里的项目,并按真实面试顺序追问。