【Logistic Regression】机器学习中的基础分类模型
逻辑斯蒂回归:机器学习中的基础分类模型
在机器学习和统计学中,逻辑斯蒂回归(Logistic Regression)是解决 二分类问题(Binary Classification)的一种经典方法。
尽管名字中有“回归”二字,但它其实是一个分类算法。本文将深入讲解逻辑斯蒂回归的基本原理、数学公式、模型优化方法以及其应用场景。
1.什么是逻辑斯蒂回归?
逻辑斯蒂回归属于 广义线性模型,主要用于二分类问题。与线性回归不同的是,逻辑斯蒂回归通过 Sigmoid 函数(也称为逻辑函数)将线性回归的结果映射到 ( 0 , 1 ) (0,1) (0,1) 区间,从而输出一个概率值,表示事件发生的可能性。
公式如下:
P ( Y = 1 ∣ X ) = σ ( w T X + b ) P(Y=1 | X) = \sigma(w^T X + b) P(Y=1∣X)=σ(wTX+b)
其中:
-
X X X 是输入特征向量(例如, X = ( x 1 , x 2 , . . . , x n ) X = (x_1, x_2, ..., x_n) X=(x1,x2,...,xn))
-
w w w 是特征的权重向量(例如, w = ( w 1 , w 2 , . . . , w n ) w = (w_1, w_2, ..., w_n) w=(w1,w2,...,wn))
-
b b b 是偏置项(截距)
-
σ ( z ) \sigma(z) σ(z) 是 Sigmoid 函数,定义为:
σ
(
z
)
=
1
1
+
e
−
z
\sigma(z) = \frac{1}{1 + e^{-z}}
σ(z)=1+e−z1
Sigmoid 函数将线性回归的输出结果压缩到 0 和 1 之间,因此它非常适合表示概率。
2.决策边界-如何进行分类?
逻辑斯蒂回归模型的输出是一个 概率值,表示样本属于某一类别的概率。为了做出分类决策,我们通常设定一个阈值(例如 0.5):
-
如果模型输出的概率大于或等于 0.5,预测样本属于 类别 1;
-
如果输出的概率小于 0.5,预测样本属于 类别 0。
决策规则可以写为:
y
^
=
{
1
,
if
P
(
Y
=
1
∣
X
)
≥
0.5
0
,
otherwise
\hat{y} = \begin{cases} 1, & \text{if } P(Y=1|X) \geq 0.5 \\ 0, & \text{otherwise} \end{cases}
y^={1,0,if P(Y=1∣X)≥0.5otherwise
然而决策边界也可以是非线性的,只要使用多项式特征扩展线性函数为非线性函数即可
3.逻辑斯蒂回归的损失函数
与线性回归不同,逻辑斯蒂回归的损失函数使用 对数似然函数(Log-Likelihood),也称为 交叉熵损失(Cross-Entropy Loss),目标是最小化损失函数以提高模型的准确性。
对于单个样本 ( X i , y i ) (X_i, y_i) (Xi,yi),其对数似然函数为:
ℓ ( w , b ) = y i log P ( Y = 1 ∣ X i ) + ( 1 − y i ) log ( 1 − P ( Y = 1 ∣ X i ) ) \ell(w, b) = y_i \log P(Y=1 | X_i) + (1 - y_i) \log (1 - P(Y=1 | X_i)) ℓ(w,b)=yilogP(Y=1∣Xi)+(1−yi)log(1−P(Y=1∣Xi))
对于整个训练集( m m m 个样本),总损失函数为:
J ( w , b ) = − 1 m ∑ i = 1 m [ y i log y ^ i + ( 1 − y i ) log ( 1 − y ^ i ) ] J(w, b) = -\frac{1}{m} \sum_{i=1}^{m} \left[y_i \log \hat{y}_i + (1 - y_i) \log (1 - \hat{y}_i)\right] J(w,b)=−m1i=1∑m[yilogy^i+(1−yi)log(1−y^i)]
其中, y ^ i = σ ( w T X i + b ) \hat{y}_i = \sigma(w^T X_i + b) y^i=σ(wTXi+b) 是模型的预测概率, y i y_i yi 是实际标签。
损失函数的构造过程:
为了训练逻辑斯蒂回归模型,需要定义一个损失函数来衡量模型预测与真实标签之间的差异。常用的损失函数是 对数损失函数(Log Loss),其构造过程如下:
- 似然函数:首先,定义样本属于类别 1 的概率为 P ( y = 1 ∣ x ) = σ ( z ) P(y=1|\mathbf{x}) = \sigma(z) P(y=1∣x)=σ(z),属于类别 0 的概率为 P ( y = 0 ∣ x ) = 1 − σ ( z ) P(y=0|\mathbf{x}) = 1 - \sigma(z) P(y=0∣x)=1−σ(z)。对于给定的样本集 { ( x i , y i ) } i = 1 m \{(\mathbf{x}_i, y_i)\}_{i=1}^m {(xi,yi)}i=1m,其中 y i ∈ { 0 , 1 } y_i \in \{0,1\} yi∈{0,1},则似然函数表示为:
L ( w , b ) = ∏ i = 1 m P ( y i ∣ x i ) L(\mathbf{w}, b) = \prod_{i=1}^m P(y_i|\mathbf{x}_i) L(w,b)=i=1∏mP(yi∣xi)
由于 y i y_i yi 只能取 0 或 1,上式可写为:
L ( w , b ) = ∏ i = 1 m [ σ ( z i ) ] y i [ 1 − σ ( z i ) ] 1 − y i L(\mathbf{w}, b) = \prod_{i=1}^m [\sigma(z_i)]^{y_i} [1 - \sigma(z_i)]^{1 - y_i} L(w,b)=i=1∏m[σ(zi)]yi[1−σ(zi)]1−yi
- 对数似然函数:为了简化计算,取对数得到对数似然函数:
ℓ ( w , b ) = ∑ i = 1 m [ y i log ( σ ( z i ) ) + ( 1 − y i ) log ( 1 − σ ( z i ) ) ] \ell(\mathbf{w}, b) = \sum_{i=1}^m \left[ y_i \log(\sigma(z_i)) + (1 - y_i) \log(1 - \sigma(z_i)) \right] ℓ(w,b)=i=1∑m[yilog(σ(zi))+(1−yi)log(1−σ(zi))]
- 损失函数:为了最小化损失,定义损失函数为对数似然函数的负值:
J ( w , b ) = − ℓ ( w , b ) = − ∑ i = 1 m [ y i log ( σ ( z i ) ) + ( 1 − y i ) log ( 1 − σ ( z i ) ) ] J(\mathbf{w}, b) = -\ell(\mathbf{w}, b) = -\sum_{i=1}^m \left[ y_i \log(\sigma(z_i)) + (1 - y_i) \log(1 - \sigma(z_i)) \right] J(w,b)=−ℓ(w,b)=−i=1∑m[yilog(σ(zi))+(1−yi)log(1−σ(zi))]
这就是 对数损失函数,它度量模型预测概率与真实标签之间的差异。通过最小化该损失函数,可以优化模型参数,使预测结果更接近真实情况。
4.优化:如何训练逻辑斯蒂回归模型?
逻辑斯蒂回归通过 梯度下降法(Gradient Descent)来优化参数(权重 w w w 和偏置 b b b)。梯度下降法通过更新模型参数,最小化损失函数。
更新公式如下:
w : = w − α ∂ J ∂ w , b : = b − α ∂ J ∂ b w := w - \alpha \frac{\partial J}{\partial w}, \quad b := b - \alpha \frac{\partial J}{\partial b} w:=w−α∂w∂J,b:=b−α∂b∂J
其中, α \alpha α 是学习率,控制每次参数更新的步长。
损失函数的梯度计算如下:
∂ J ∂ w = 1 m ∑ i = 1 m ( y ^ i − y i ) X i \frac{\partial J}{\partial w} = \frac{1}{m} \sum_{i=1}^{m} (\hat{y}_i - y_i) X_i ∂w∂J=m1i=1∑m(y^i−yi)Xi
∂ J ∂ b = 1 m ∑ i = 1 m ( y ^ i − y i ) \frac{\partial J}{\partial b} = \frac{1}{m} \sum_{i=1}^{m} (\hat{y}_i - y_i) ∂b∂J=m1i=1∑m(y^i−yi)
5.逻辑斯蒂回归与线性回归的对比
逻辑斯蒂回归和线性回归的主要区别在于输出类型和损失函数:
比较项 | 线性回归 | 逻辑斯蒂回归 |
---|---|---|
目标变量 | 连续值 | 概率值(0-1) |
损失函数 | 均方误差(MSE) | 交叉熵损失(log-loss) |
输出范围 | ( − ∞ , + ∞ ) (-\infty, +\infty) (−∞,+∞) | ( 0 , 1 ) (0,1) (0,1) |
适用场景 | 回归任务 | 二分类任务 |
线性回归预测的是一个连续值,而逻辑斯蒂回归预测的是概率值,通常用于分类任务。
6.正则化:避免过拟合
为了避免模型 过拟合,逻辑斯蒂回归通常会加入 正则化项,例如 L1 正则化(Lasso)和 L2 正则化(Ridge)。正则化有助于控制模型复杂度,防止过拟合。
正则化后的损失函数如下:
J ( w , b ) = − 1 m ∑ [ y i log y ^ i + ( 1 − y i ) log ( 1 − y ^ i ) ] + λ ∣ ∣ w ∣ ∣ 2 J(w, b) = -\frac{1}{m} \sum \left[y_i \log \hat{y}_i + (1 - y_i) \log (1 - \hat{y}_i)\right] + \lambda ||w||^2 J(w,b)=−m1∑[yilogy^i+(1−yi)log(1−y^i)]+λ∣∣w∣∣2
其中, λ \lambda λ 是正则化参数,用于控制正则化的强度。
7.逻辑斯蒂回归的应用场景
逻辑斯蒂回归是机器学习中非常基础且有效的分类模型,广泛应用于多个领域:
-
医学诊断:判断病人是否患有某种疾病
-
金融风控:例如信用卡欺诈检测、贷款违约预测
-
广告点击率预估(CTR Prediction):预测广告是否被点击
-
文本分类:例如垃圾邮件检测,情感分析
8.总结
逻辑斯蒂回归通过 Sigmoid 函数 将线性回归的输出映射到 ( 0 , 1 ) (0,1) (0,1) 范围,从而将问题转化为概率预测,适用于二分类问题。通过最小化交叉熵损失函数并使用梯度下降法优化参数,逻辑斯蒂回归可以快速而有效地进行分类任务。尽管它是一个相对简单的模型,但在许多实际应用中依然表现出色。