跳到主要内容

线性回归与逻辑回归

问题

线性回归和逻辑回归的原理是什么?它们有什么区别?

答案

一、线性回归

线性回归用于回归任务(预测连续值):

y^=w1x1+w2x2++wnxn+b=wTx+b\hat{y} = w_1 x_1 + w_2 x_2 + \dots + w_n x_n + b = \mathbf{w}^T \mathbf{x} + b

损失函数:均方误差(MSE)

L=1ni=1n(yiy^i)2L = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2

二、逻辑回归

逻辑回归用于分类任务(二分类),在线性回归基础上加 Sigmoid:

P(y=1x)=σ(wTx+b)=11+e(wTx+b)P(y=1|x) = \sigma(\mathbf{w}^T \mathbf{x} + b) = \frac{1}{1 + e^{-(\mathbf{w}^T \mathbf{x} + b)}}

损失函数:交叉熵(Cross-Entropy)

L=1ni=1n[yilog(y^i)+(1yi)log(1y^i)]L = -\frac{1}{n} \sum_{i=1}^{n} [y_i \log(\hat{y}_i) + (1-y_i) \log(1-\hat{y}_i)]

三、对比

对比维度线性回归逻辑回归
任务类型回归(连续值)分类(离散值)
输出范围(,+)(-\infty, +\infty)(0,1)(0, 1) 概率
激活函数Sigmoid
损失函数MSECross-Entropy
决策边界线性决策边界

四、正则化

防止过拟合,在损失函数中添加惩罚项:

正则化公式效果
L1 (Lasso)λwi\lambda \sum \|w_i\|特征选择(稀疏解)
L2 (Ridge)λwi2\lambda \sum w_i^2权重衰减(防过拟合)
Elastic Net两者结合兼顾特征选择和稳定性

五、梯度下降

变体每步使用数据量特点
BGD全部数据稳定但慢
SGD1 个样本快但震荡
Mini-batch GD一个 batch平衡速度和稳定性

常见面试问题

Q1: 逻辑回归为什么用交叉熵而不用 MSE?

答案

  • Sigmoid + MSE 会导致损失函数非凸,存在大量局部最优
  • Sigmoid + 交叉熵的损失函数是凸函数,有唯一全局最优
  • 交叉熵的梯度更大,训练更快(不会出现 Sigmoid 两端梯度消失)

Q2: L1 正则化为什么能做特征选择?

答案

  • L1 惩罚项在原点处不可导,优化时容易将某些权重精确地推到 0
  • 权重为 0 意味着对应特征被丢弃,实现了自动特征选择
  • L2 只会让权重接近 0 但不会精确等于 0

Q3: 逻辑回归和 SVM 的区别?

答案

  • 逻辑回归优化交叉熵损失,SVM 优化合页损失(Hinge Loss)+ 最大间隔
  • 逻辑回归输出概率,SVM 输出类别
  • SVM 只关注支持向量(决策边界附近的样本),逻辑回归使用所有样本
  • 小数据集 SVM 通常更好,大数据集逻辑回归更实用

相关链接