[机器学习]逻辑回归(介绍2)

155 阅读6分钟

1. 为什么叫“逻辑回归”?

这个名字确实有点迷惑性,因为它本质上是一个分类算法,而不是回归算法。这个名字的来源主要有两个原因:

  1. “逻辑” (Logistic)
    • 指的是它使用了 Logistic 函数(也叫 Sigmoid 函数)。这个函数是模型的核心,负责将线性组合的结果z映射到 (0,1) 区间内,解释为概率。
  2. “回归” (Regression)
    • 历史原因/方法延续: 它的数学基础和建模过程(特别是第一步)与线性回归非常相似。它首先计算输入的线性组合(z = w0 + w1*x1 + w2*x2 + ... + wn*xn),这一步的形式和线性回归完全一样,是“回归”操作。
    • 输出连续值(概率): 虽然最终目标是分类(输出离散的类别标签,如 0 或 1),但它的直接输出是一个介于 0 和 1 之间的连续概率值,表示样本属于正类(通常标记为 1)的可能性(P(y=1 | X))。输出概率值这个特性也符合“回归”输出连续值的概念。
    • 统计学背景: 在统计学中,这类用于建模分类问题(特别是二分类)的广义线性模型,因其模型形式(线性预测器 + 连接函数)与回归模型的渊源,常被命名为“某某回归”。

简单来说: “逻辑”指其核心转换函数(Sigmoid),“回归”指其建模过程的第一步(线性组合)和输出连续概 率值的特性,尽管最终目的是分类。

2. 它解决的是线性问题还是非线性问题?

  • 逻辑回归本身是一个线性分类器。
  • 决策边界是线性的: 逻辑回归通过 Sigmoid 函数将线性组合 z 映射为概率。当我们根据概率(通常阈值设为 0.5)做最终分类决策时,其决策边界(即 P(y=1) = 0.5 的地方,对应 z = 0)在特征空间中是一条直线(二维)或一个超平面(高维)
  • 为什么是线性的? 因为 z = w0 + w1*x1 + ... + wn*xn = 0 这个方程定义了决策边界,这是一个线性方程。特征空间中的点被这个线性边界分成两类。

重要补充:

  • 特征工程可以引入非线性: 虽然逻辑回归模型本身是线性的,但我们可以通过特征工程来间接解决非线性问题。例如:
    • 手动添加特征的非线性组合(如 x1^2, x2^2, x1*x2)。
    • 使用多项式特征。
    • 使用基于树模型或核方法构造的新特征。
  • 核逻辑回归: 类似于 SVM,逻辑回归也可以使用“核技巧”(Kernel Trick)将特征映射到更高维空间,在高维空间中寻找线性决策边界,这对应于原始特征空间中的非线性决策边界。但这超出了标准逻辑回归的范畴。

结论: 标准的、未使用核技巧或复杂特征工程的逻辑回归,只能学习线性决策边界,因此它解决的是线性可分或近似线性可分的分类问题。要处理非线性问题,需要借助特征工程或核方法。

3. 它的原理是什么?(核心步骤)

逻辑回归的核心思想是:对于给定的输入特征 X,计算它属于某个类别(通常是正类 y=1)的概率 P(y=1 | X)。然后根据这个概率值(通常与 0.5 比较)进行分类预测。

其原理可以分解为以下步骤:

  1. 线性组合(仿射变换):

    • 与线性回归第一步相同:计算输入特征 X = [x1, x2, ..., xn] 的加权和,加上一个偏置项(截距)。
    • z = w0 + w1*x1 + w2*x2 + ... + wn*xn
    • 这里 w0, w1, w2, ..., wn 是模型需要学习的参数(权重)。z 是一个实数,范围在 (-∞, +∞)
  2. Sigmoid 函数转换(Logistic 函数):

    • 将上一步得到的线性得分 z 输入到 Sigmoid 函数中,将其压缩并映射到 (0, 1) 区间,得到概率值。
    • σ(z) = 1 / (1 + e^(-z))
    • 输出解释: P(y=1 | X) = σ(z)。这个值表示在给定输入特征 X 的条件下,样本属于类别 y=1 的概率。
    • Sigmoid 函数特性:
      • z -> +∞ 时,σ(z) -> 1 (非常确信属于正类)
      • z -> -∞ 时,σ(z) -> 0 (非常确信不属于正类,即属于负类)
      • z = 0 时,σ(z) = 0.5 (属于正类和负类的概率各半,决策边界点)
  3. 设定阈值,进行分类决策:

    • 得到概率 P(y=1 | X) 后,需要将其转换为具体的类别标签(0 或 1)。
    • 通常设定一个阈值(Threshold),最常用的是 0.5
      • 如果 P(y=1 | X) >= 0.5,则预测 ŷ = 1 (正类)。
      • 如果 P(y=1 | X) < 0.5,则预测 ŷ = 0 (负类)。
    • 这个阈值可以根据具体业务需求(如对召回率或精确率有不同侧重)进行调整。
  4. 参数学习(最大似然估计 & 交叉熵损失):

    • 目标:找到一组最优的参数 w (w0, w1, ..., wn),使得模型预测的概率尽可能接近样本的真实标签。
    • 核心思想:最大似然估计 (MLE):寻找能使观测到的训练数据出现的“可能性”最大的参数。
    • 损失函数:二元交叉熵损失 (Binary Cross-Entropy Loss):这是实现 MLE 目标常用且非常适合二分类概率模型的损失函数。
      • 对于单个样本 (X_i, y_i) 的损失: L(y_i, ŷ_i) = - [ y_i * log(P(y_i=1 | X_i)) + (1 - y_i) * log(1 - P(y_i=1 | X_i)) ]
      • 直观理解:
        • 如果真实标签 y_i = 1,损失为 -log(P(y_i=1 | X_i))。模型预测概率 P(y_i=1 | X_i) 越接近 1(预测正确且自信),损失越小(趋近于 0);预测概率越接近 0(预测错误),损失越大(趋近于 +∞)。
        • 如果真实标签 y_i = 0,损失为 -log(1 - P(y_i=1 | X_i))。模型预测概率 P(y_i=1 | X_i) 越接近 0(预测正确且自信),损失越小;预测概率越接近 1(预测错误),损失越大。
      • 整个训练集的损失是所有样本损失的平均值
    • 优化算法: 由于交叉熵损失函数是凸函数,通常使用梯度下降 (Gradient Descent) 或其变种(如 SGD, Adam)来最小化这个损失函数,从而迭代更新参数 w

总结原理流程: 输入特征 X -> 线性组合得到 z -> Sigmoid 函数得到概率 P(y=1 | X) -> 根据阈值(如 0.5)判定类别 ŷ。 训练时,通过最小化交叉熵损失(基于最大似然估计),利用梯度下降学习最优参数 w

核心要点回顾

  1. 名字: “逻辑”源于 Sigmoid (Logistic) 函数,“回归”源于其线性组合形式和输出连续概率值的历史/方法关联。本质是分类模型。
  2. 线性 vs 非线性: 标准逻辑回归是线性分类器(决策边界是线性的)。可通过特征工程或核方法处理非线性问题。
  3. 原理:
    • 计算特征的线性组合 z
    • Sigmoid 函数z 映射到 (0,1) 区间,得到概率 P(y=1 | X)
    • 设定阈值(通常 0.5),根据概率进行分类决策
    • 通过最大似然估计(使用交叉熵损失函数)和梯度下降优化来学习参数 w