Skip to content

机器学习面试知识点整理

本文整理机器学习面试中的高频知识点,涵盖基础概念、经典算法、模型评估等核心内容。


基础概念

偏差-方差权衡 (Bias-Variance Tradeoff)

模型的泛化误差可以分解为三部分:

\[ \text{Error} = \text{Bias}^2 + \text{Variance} + \text{Noise} \]
  • 偏差 (Bias):模型的平均预测与真实值之间的差距。高偏差意味着模型过于简单,欠拟合。
  • 方差 (Variance):模型在不同训练集上预测结果的波动。高方差意味着模型过于复杂,过拟合。
模型复杂度 偏差 方差 典型情况
低(如线性回归) 欠拟合
高(如深层神经网络) 过拟合
适中 适中 适中 最优

过拟合与欠拟合

过拟合的信号: 训练误差很低,但验证误差远高于训练误差。

解决过拟合:

  • 增加训练数据
  • 正则化(L1/L2、Dropout)
  • 降低模型复杂度
  • Early Stopping
  • 数据增强

解决欠拟合:

  • 增加模型复杂度(更深、更宽的网络)
  • 增加特征
  • 减少正则化强度
  • 训练更长时间

交叉验证 (Cross-Validation)

  • K-Fold CV:将数据分成 K 份,轮流用 K-1 份训练、1 份验证
  • Stratified K-Fold:保持每折中各类别的比例与总体一致
  • Leave-One-Out:K = 样本数,计算量大但方差最低

经典算法

线性回归 (Linear Regression)

\[ \hat{y} = W^T x + b, \quad \text{Loss} = \frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y}_i)^2 \]
  • 闭式解:\(W = (X^TX)^{-1}X^Ty\)(正规方程)
  • 假设:线性关系、误差独立同分布且均值为0、同方差性

逻辑回归 (Logistic Regression)

\[ P(y=1|x) = \sigma(W^T x + b) = \frac{1}{1 + e^{-(W^T x + b)}} \]
  • 使用交叉熵损失(Cross-Entropy Loss)
  • 本质是广义线性模型,输出概率值
  • 面试高频问题:为什么用交叉熵而不是MSE?因为MSE在Sigmoid输出上是非凸的,梯度在接近0和1时极小,训练困难

决策树 (Decision Tree)

  • 分裂准则:信息增益(ID3)、信息增益比(C4.5)、基尼不纯度(CART)
  • 优点:可解释性强、不需要特征缩放、能处理缺失值
  • 缺点:容易过拟合、对数据小变化敏感

集成学习 (Ensemble Methods)

Bagging(随机森林):

  • 有放回采样构建多棵树,预测时投票/平均
  • 降低方差,适合高方差的基学习器

Boosting(GBDT / XGBoost / LightGBM):

  • 串行地训练多个弱学习器,每个学习器纠正前一个的错误
  • 降低偏差,但可能增加过拟合风险
方法 核心思想 降低偏差/方差 是否并行
Bagging 投票平均 降低方差
Boosting 纠正残差 降低偏差

SVM (Support Vector Machine)

  • 找到最大间隔超平面
  • 核技巧(Kernel Trick):将数据映射到高维空间,实现非线性分类
  • 常用核函数:线性核、RBF核、多项式核
  • 面试高频问题:SVM的损失函数是什么?Hinge Loss: \(\max(0, 1 - y \cdot f(x))\)

模型评估

分类指标

指标 公式 适用场景
Accuracy \(\frac{TP+TN}{TP+TN+FP+FN}\) 类别平衡
Precision \(\frac{TP}{TP+FP}\) 关注假阳性(如垃圾邮件)
Recall \(\frac{TP}{TP+FN}\) 关注假阴性(如疾病诊断)
F1 Score \(\frac{2 \cdot P \cdot R}{P + R}\) 精确率和召回率的调和平均
AUC-ROC ROC曲线下面积 不受阈值和类别不平衡影响

回归指标

  • MSE (Mean Squared Error):\(\frac{1}{n}\sum(y_i - \hat{y}_i)^2\)
  • MAE (Mean Absolute Error):\(\frac{1}{n}\sum|y_i - \hat{y}_i|\)
  • \(R^2\)\(1 - \frac{\sum(y_i - \hat{y}_i)^2}{\sum(y_i - \bar{y})^2}\),越接近 1 越好

特征工程

特征缩放

  • 标准化 (Standardization)\(x' = \frac{x - \mu}{\sigma}\),适用于大多数ML算法
  • 归一化 (Min-Max Normalization)\(x' = \frac{x - x_{min}}{x_{max} - x_{min}}\),适用于有明确边界的特征

缺失值处理

  • 删除(样本量充足时)
  • 均值/中位数/众数填充
  • 使用模型预测缺失值(如KNN填充)
  • 将"缺失"本身作为一个特征

类别不平衡

  • 过采样:SMOTE(合成少数类样本)
  • 欠采样:随机删除多数类样本
  • 代价敏感学习:对少数类的错误赋予更高的权重
  • 评估指标选择:使用 F1、AUC-ROC 而非 Accuracy

高频面试问题

Q: L1 和 L2 正则化的区别?

L1 产生稀疏解(特征选择),L2 产生小而分散的权重。L1 在原点不可导,L2 处处可导。几何解释:L1 的约束区域是菱形(顶点在坐标轴上,容易与等高线在轴上相交),L2 的约束区域是圆形。

Q: 为什么树模型不需要特征缩放?

决策树是基于特征值的大小排序来进行分裂的,分裂准则(信息增益、基尼系数)不依赖特征的绝对数值,只依赖排序关系。特征缩放不改变排序,因此不影响树的结构。

Q: Batch Size 对训练的影响?

  • 大 Batch:梯度估计更准确、训练更稳定、容易并行加速,但泛化能力可能变差(倾向收敛到 sharp minima)
  • 小 Batch:梯度噪声大、有隐式正则化效果、泛化通常更好,但训练不稳定、不能充分利用 GPU 并行

Q: 梯度消失和梯度爆炸?

  • 梯度消失:深层网络中梯度在反向传播时指数级缩小,导致浅层参数几乎不更新。原因:Sigmoid/Tanh 的导数 < 1。解决:ReLU、残差连接、BatchNorm、合适的初始化
  • 梯度爆炸:梯度指数级增大,导致参数更新过大。解决:梯度裁剪、合适的初始化、BatchNorm

评论 #