第4章 技术面试:机器学习核心算法

高频问题集中在三大类:基础模型原理(逻辑回归、决策树、SVM)、集成学习(随机森林、XGBoost)、聚类与降维(K-Means、PCA)。面试官常通过“理论推导 + 场景应用 + 参数调优”三层递进考察深度。以下是经典回答框架和公司侧重点。

🎯 通用回答框架:定义问题 → 算法选择 → 核心原理 → 数学关键 → 参数与场景
明确问题类型 选择匹配算法 核心原理简述 数学关键点 参数·场景·局限 ✨ 加分点:每个步骤结合业务场景举例 + 说明为什么选这个算法 分类/回归/聚类? 线性/树/距离/概率 1句话解释核心 损失/梯度/边界 数据规模判断 可解释性需求 过拟合风险 调参方向 公司侧重点:百度/头条→模型原理;阿里→业务理解;腾讯→工程落地

高频面试问答卡片

🧩 卡片1:逻辑回归原理与场景

面试问题:“请解释逻辑回归为什么叫‘回归’?它和线性回归的本质区别是什么?”

考察点:基础理解深度、对广义线性模型的认识、是否混淆分类与回归。

回答框架:命名由来 → 本质是分类模型 → 广义线性模型视角 → 决策边界与Sigmoid → 损失函数区别。

示例回答:“逻辑回归虽名‘回归’,但因采用Sigmoid将线性输出映射到[0,1],用于分类。本质是广义线性模型,连接函数为Logit。线性回归用MSE,逻辑回归用交叉熵,且输出为概率值。”

可能追问:“为什么不用MSE而用交叉熵?逻辑回归是否要求特征独立?如何处理多分类?”

⚠️ 避坑:不要只说“逻辑回归是分类模型”就结束;必须说明“回归”二字的统计学来源;面试官常借此判断科班基础。

🌲 卡片2:决策树与过拟合处理

面试问题:“决策树如何选择分裂特征?如何防止过拟合?”

考察点:信息论基础、剪枝策略、对树模型复杂度的控制能力。

回答框架:信息增益 / 增益率 / Gini系数 → 选择最大指标 → 预剪枝(限制深度、叶子节点数)→ 后剪枝(Cost Complexity Pruning)→ 集成方法的引入。

示例回答:“分类树常用信息增益或Gini系数,CART用Gini;回归树用MSE。防止过拟合主要通过预剪枝(max_depth/min_samples_leaf)和后剪枝(CCP)。实际工作中会结合交叉验证确定最优α。极端时直接上随机森林。”

可能追问:“信息增益的缺点?连续特征如何处理?决策树对缺失值的处理?”

💡 加分点:提到ID3、C4.5、CART的区别,并说明CART是二叉树且可做回归。

📐 卡片3:SVM与核技巧

面试问题:“SVM的核函数是什么?如何选择核函数?为什么要引入对偶?”

考察点:最优化理论理解、对偶问题与KKT条件、核技巧的本质。

回答框架:最大间隔分类器 → 对偶问题解决高维内积 → 核函数隐式映射 → 常用核(线性、多项式、RBF)→ 选择依据(特征维度与样本量)。

示例回答:“核函数将原始空间内积映射到高维特征空间内积,避免显式计算。选择RBF因为只有一个γ参数且非线性能力较强,但特征维度远大于样本量时用线性核更高效。对偶问题将原问题转化为凸二次规划,支持向量数量少,计算快。”

可能追问:“SVM如何处理多分类?核函数必须满足正定性吗?SVM与逻辑回归的关系?”

⚠️ 避坑:不要只背公式,要说明对偶的真正目的——解决维度灾难;RBF核的γ过大过小都会导致问题。

项目案例模板:信用卡欺诈检测(不平衡分类)

项目名称信用卡欺诈检测系统(不平衡分类)
业务背景某支付平台日均交易千万笔,需实时检测欺诈交易,正样本(欺诈)仅占0.17%。
规模指标训练数据284,807笔,特征31维(PCA降维后),AUC>0.98,召回率>85%,精确率>90%。
技术栈Python、scikit-learn、XGBoost、SMOTE过采样、交叉验证、特征工程(时间戳、金额比率)。
核心难点①极端不平衡样本导致模型偏向多数类;②实时性要求推理<50ms;③需要可解释性以配合风控审计。
面试高频追问1. 为什么不用随机欠采样?SMOTE生成的样本是否会引入噪声?2. 如何选择AUC-ROC而非准确率?3. 特征工程做过哪些?为什么PCA可以保留信息?
可迁移回答话术“在欺诈检测等不平衡场景中,我首先分析正负样本比例,评估指标选择Precision-Recall曲线和AUC-ROC。采用SMOTE生成合成样本后,用XGBoost训练并通过早停避免过拟合。最终模型在保持92%精确率的同时召回率达到88%,并利用SHAP值给风控人员输出可解释理由。”
💡 面试迁移技巧:该案例的话术可套用到任何“不平衡 + 实时 + 可解释”场景,如反垃圾、故障检测。核心结构:数据分布→采样策略→模型选择→评估指标→可解释性方案。