1. 为什么叫“逻辑回归”?
这个名字确实有点迷惑性,因为它本质上是一个分类算法,而不是回归算法。这个名字的来源主要有两个原因:
- “逻辑” (Logistic):
- 指的是它使用了 Logistic 函数(也叫 Sigmoid 函数)。这个函数是模型的核心,负责将线性组合的结果z映射到 (0,1) 区间内,解释为概率。
- “回归” (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 比较)进行分类预测。
其原理可以分解为以下步骤:
-
线性组合(仿射变换):
- 与线性回归第一步相同:计算输入特征
X = [x1, x2, ..., xn]的加权和,加上一个偏置项(截距)。 z = w0 + w1*x1 + w2*x2 + ... + wn*xn- 这里
w0, w1, w2, ..., wn是模型需要学习的参数(权重)。z是一个实数,范围在(-∞, +∞)。
- 与线性回归第一步相同:计算输入特征
-
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(属于正类和负类的概率各半,决策边界点)
- 当
- 将上一步得到的线性得分
-
设定阈值,进行分类决策:
- 得到概率
P(y=1 | X)后,需要将其转换为具体的类别标签(0 或 1)。 - 通常设定一个阈值(Threshold),最常用的是 0.5:
- 如果
P(y=1 | X) >= 0.5,则预测ŷ = 1(正类)。 - 如果
P(y=1 | X) < 0.5,则预测ŷ = 0(负类)。
- 如果
- 这个阈值可以根据具体业务需求(如对召回率或精确率有不同侧重)进行调整。
- 得到概率
-
参数学习(最大似然估计 & 交叉熵损失):
- 目标:找到一组最优的参数
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。
核心要点回顾
- 名字: “逻辑”源于 Sigmoid (Logistic) 函数,“回归”源于其线性组合形式和输出连续概率值的历史/方法关联。本质是分类模型。
- 线性 vs 非线性: 标准逻辑回归是线性分类器(决策边界是线性的)。可通过特征工程或核方法处理非线性问题。
- 原理:
- 计算特征的线性组合
z。 - 用 Sigmoid 函数 将
z映射到(0,1)区间,得到概率P(y=1 | X)。 - 设定阈值(通常 0.5),根据概率进行分类决策。
- 通过最大似然估计(使用交叉熵损失函数)和梯度下降优化来学习参数
w。
- 计算特征的线性组合