逻辑回归(Logistic Regression)是一种常见的分类算法,尽管名字中带有“回归”,但它主要用于二分类问题,也可以扩展到多分类任务。
1. 逻辑回归的基本原理
逻辑回归的核心思想是使用**逻辑函数(Sigmoid)**将线性回归的输出转换为概率值:
[
\sigma(z) = \frac{1}{1 + e^{-z}}
]
其中,( z ) 是线性回归的结果:
[
z = w_1x_1 + w_2x_2 + … + w_nx_n + b
]
通过 Sigmoid 函数,逻辑回归可以输出一个介于 0 和 1 之间的概率值,并根据设定的阈值(通常为 0.5)将样本分类为 0 或 1。
2. 逻辑回归的决策边界
逻辑回归的决策边界是由权重和偏置确定的超平面。例如:
- 在二维数据中,决策边界是一条直线。
- 在三维数据中,决策边界是一个平面。
- 在更高维数据中,决策边界是一个超平面。
3. 逻辑回归的损失函数
为了优化逻辑回归模型,我们使用对数损失函数(Log Loss),即交叉熵损失(Cross-Entropy Loss):
[
L = - \frac{1}{m} \sum_{i=1}^{m} [ y_i \log \hat{y}_i + (1 - y_i) \log (1 - \hat{y}_i) ]
]
其中:
- ( y_i ) 是真实标签(0 或 1)。
- ( \hat{y}_i ) 是预测的概率值。
- ( m ) 是样本总数。
4. 逻辑回归的优化方法
逻辑回归使用**梯度下降(Gradient Descent)**来最小化损失函数,更新权重 ( w ) 和偏置 ( b ):
[
w = w - \alpha \frac{\partial L}{\partial w}, \quad b = b - \alpha \frac{\partial L}{\partial b}
]
其中 ( \alpha ) 是学习率。
常见优化方法:
- 批量梯度下降(BGD)
- 随机梯度下降(SGD)
- 小批量梯度下降(Mini-batch SGD)
5. 逻辑回归的 Python 实现
使用 scikit-learn
进行逻辑回归建模:
1 | import numpy as np |
6. 逻辑回归的优缺点
优点:
- 计算简单,易于实现。
- 训练速度快,适用于大规模数据。
- 结果可解释性强,能提供特征权重。
缺点:
- 只能处理线性可分问题,无法解决复杂非线性关系。
- 对异常值较敏感。
- 不能自动进行特征选择,可能需要手动筛选。
7. 逻辑回归的扩展
- 多分类逻辑回归(Softmax 回归):用于多类别分类任务。
- 正则化逻辑回归(L1/L2 正则化):防止过拟合。
- 带核的逻辑回归(Kernel Logistic Regression):适用于非线性数据。