什么是逻辑回归?

逻辑回归是用于二分类问题的经典算法。尽管名字里有"回归",但它实际上是一个分类算法。

回归 vs 分类:线性回归预测"多少"(如房价),逻辑回归回答"哪一个"(如是或否)。

核心直觉:通过 Sigmoid 函数将线性输出压缩到 [0, 1] 区间,表示属于正类的概率。

典型问题:某邮件是否是垃圾邮件?某用户是否会订阅服务?某图像是猫还是狗?

🎯 适用场景

  • 二分类问题:预测只有两种可能结果的问题
  • 需要概率输出:不仅想知道分类结果,还想知道"有多确定"
  • 高可解释性需求:需要解释每个特征对结果的贡献
  • 快速基线模型:作为复杂模型的对比基准
  • 线性可分数据:数据可以被一条直线(或超平面)大致分开

💡 经典应用:垃圾邮件检测、疾病诊断、信用评分、广告点击预测

📜 历史渊源

问题背景:线性回归能预测连续值,但现实中很多问题是"是或否"——这封邮件是不是垃圾邮件?这个肿瘤是良性还是恶性?需要一种输出概率的方法。

关键突破:1838年,比利时数学家 Verhulst 为了描述人口增长的"天花板效应",发明了 Logistic 函数(S 形曲线)。120年后的1958年,统计学家 David Cox 灵光一现:把这条 S 曲线用来做分类——输出值天然在 0~1 之间,正好可以解释为概率!

深远影响:逻辑回归至今仍是工业界最常用的分类算法之一。它简单、快速、可解释,是广告点击率预测、信用评分、医学诊断的标准基线方法。

趣闻:"Logistic"这个名字来源于 Verhulst 对人口增长曲线的命名,与"逻辑"(Logic)毫无关系!中文翻译成"逻辑回归"纯属历史巧合,叫"对数几率回归"更准确。

🔗 发展脉络

1805
线性回归
预测连续值
需要分类
→
1958
逻辑回归
二分类
需要多分类
→
1959
Softmax
多分类
非线性边界
→
1995
SVM
最大间隔
复杂特征
→
2012
深度学习
端到端

⚠️ 局限性

  • 线性决策边界:只能学习线性分类边界,无法处理复杂的非线性关系
  • 特征独立假设:假设特征之间相对独立,共线性会影响参数估计
  • 对异常值敏感:极端数据点会显著影响模型参数
  • 完全分离问题:当数据完全可分时,参数估计会趋向无穷大
  • 需要特征工程:对于非线性问题,需要手动添加多项式特征

💡 这些局限催生了:SVM(核函数处理非线性)、神经网络(自动特征学习)、决策树(非线性分割)

🏢 工业界地位

广泛使用

逻辑回归在工业界仍然是最常用的二分类算法之一:

  • 金融风控:信用评分卡(Scorecard)的核心算法
  • 广告推荐:点击率预估(CTR)的基线模型
  • 医疗诊断:疾病风险评估,需要可解释性
  • A/B测试:用户行为预测和转化分析

🎯 为什么还在用?训练速度快、预测效率高、结果可解释(权重直接反映特征重要性)、概率输出天然支持置信度评估。在大规模工业场景中,简单的逻辑回归往往比复杂模型更实用。

交互式可视化

观察决策边界如何将两类数据分开

1.0
1.0
0.0
1.5
试一试:
  • 拖动决策边界的位置,观察分类准确率如何变化——找到最佳分割线
  • 增大数据的「重叠度」,观察即使最优边界也无法完美分开——这就是现实数据的样子
  • 观察 Sigmoid 曲线:靠近边界的点概率接近 0.5(不确定),远离的点接近 0 或 1(非常确定)

决策函数:

决策边界方程:

💡 提示:决策边界是 z = 0 的直线。调整参数观察边界如何移动!

类别 0 概率 > 0.5 类别 1 概率 > 0.5

数学原理

逻辑回归使用 Sigmoid 函数将线性输出映射到概率:

$$\sigma(z) = \frac{1}{1 + e^{-z}}$$

其中 z 是线性组合:

$$z = w_1 x_1 + w_2 x_2 + b = \mathbf{w}^T\mathbf{x} + b$$

为什么用 Sigmoid?

  • 输出范围 (0, 1),符合概率定义
  • 导数优美:$\sigma'(z) = \sigma(z)(1-\sigma(z))$
  • 与最大似然估计自然联系

损失函数(交叉熵/对数损失):

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

信息论视角:交叉熵衡量两个概率分布的差异。我们希望模型的预测分布尽可能接近真实分布。

梯度(非常简洁!):

$$\frac{\partial L}{\partial w_j} = \frac{1}{n}\sum_{i=1}^{n}(\hat{y}_i - y_i)x_j^{(i)}$$

🎯 关键洞察:
• 梯度形式与线性回归相同:$(\hat{y} - y)x$,只是 $\hat{y}$ 的计算方式不同
• 当 z = 0 时,σ(z) = 0.5,这是决策边界
• 决策边界是线性的,但概率变化是非线性的(S型曲线)
• 交叉熵损失 + Sigmoid = 凸优化问题,有唯一最优解

扩展到多分类:使用 Softmax 回归

$$\hat{y}_j = \frac{\exp(o_j)}{\sum_{k=1}^{q} \exp(o_k)}$$