逻辑回归算法详解
一、基本概念
1.1 什么是逻辑回归?
逻辑回归(Logistic Regression)是一种监督学习的分类算法,主要用于解决二分类问题(也可扩展至多分类)。尽管名称中包含”回归”二字,但其本质是分类算法,而非回归算法。
1.2 核心定位
- 算法类型:有监督学习、判别模型
- 主要用途:二分类问题(是/否、正/负等)
- 输出形式:概率值(0-1之间),可转换为类别标签
二、数学原理
2.1 Sigmoid函数(逻辑函数)
逻辑回归的核心是Sigmoid函数,将线性输出映射到概率空间:
$$ \sigma(z) = \frac{1}{1 + e^{-z}} $$
特性:
- 输出范围:[0, 1]
- 当z→∞,σ(z)→1;当z→-∞,σ(z)→0
- 在z=0时,σ(z)=0.5
2.2 模型公式
逻辑回归模型的完整表达式:
$$ P(y=1|x) = \sigma(w^Tx + b) = \frac{1}{1 + e^{-(w^Tx + b)}} $$
其中:
- $x$:输入特征向量
- $w$:权重向量
- $b$:偏置项
- $w^Tx + b$:线性组合
2.3 对数几率(Log Odds)
逻辑回归的另一种理解方式:
$$ \log\left(\frac{P(y=1|x)}{1-P(y=1|x)}\right) = w^Tx + b $$
这表明对数几率是输入特征的线性函数。
三、损失函数
3.1 对数损失(Log Loss)
逻辑回归使用对数损失函数(也称交叉熵损失):
$$ 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] $$
其中:
- $m$:样本数量
- $y^{(i)}$:真实标签
- $\hat{y}^{(i)}$:预测概率
3.2 为什么不用均方误差?
- 对数损失函数是凸函数,保证梯度下降能找到全局最优解
- 对分类问题更合适,惩罚错误分类的力度更大
四、参数优化
4.1 梯度下降法
通过梯度下降更新参数:
$$ w := w - \alpha \frac{\partial J}{\partial w} $$
$$ b := b - \alpha \frac{\partial J}{\partial b} $$
梯度计算:
$$ \frac{\partial J}{\partial w} = \frac{1}{m} X^T(\hat{Y} - Y) $$
$$ \frac{\partial J}{\partial b} = \frac{1}{m} \sum_{i=1}^{m} (\hat{y}^{(i)} - y^{(i)}) $$
4.2 优化算法
- 批量梯度下降(Batch GD)
- 随机梯度下降(SGD)
- 小批量梯度下降(Mini-batch GD)
- 牛顿法、拟牛顿法(如L-BFGS)
五、与线性回归的区别
| 特性 | 线性回归 | 逻辑回归 |
|---|---|---|
| 问题类型 | 回归问题 | 分类问题 |
| 输出 | 连续值 | 概率值(0-1) |
| 激活函数 | 无 | Sigmoid函数 |
| 损失函数 | 均方误差(MSE) | 对数损失(交叉熵) |
| 应用场景 | 预测数值 | 预测类别 |
六、多分类扩展
6.1 One-vs-Rest(OvR)
- 为每个类别训练一个二分类器
- 共训练K个模型(K为类别数)
- 预测时选择概率最高的类别
6.2 Softmax回归
- 直接扩展到多分类
- 使用Softmax函数替代Sigmoid
- 一次训练即可处理多分类
七、正则化
7.1 L1正则化(Lasso)
$$ J_{L1}(w) = J(w) + \lambda \sum_{i=1}^{n} |w_i| $$
- 可产生稀疏解(特征选择)
- 适用于高维数据
7.2 L2正则化(Ridge)
$$ J_{L2}(w) = J(w) + \lambda \sum_{i=1}^{n} w_i^2 $$
- 防止过拟合
- 保持所有特征
7.3 Elastic Net
结合L1和L2正则化,平衡两者优势。
八、应用场景
8.1 金融风控
- 信用评分
- 欺诈检测
- 违约预测
8.2 医疗健康
- 疾病诊断(糖尿病、癌症等)
- 患者风险评估
- 康复概率预测
8.3 互联网应用
- 垃圾邮件识别
- 用户流失预测
- 点击率预测(CTR)
8.4 其他领域
- 文本分类
- 客户购买意向
- 推荐系统
九、优缺点分析
9.1 优点
✅ 简单高效:计算复杂度低,训练速度快
✅ 可解释性强:权重可直接解释特征重要性
✅ 概率输出:不仅预测类别,还给出置信度
✅ 对数据要求低:不需要特征缩放也能工作
✅ 理论基础扎实:源于统计学,数学性质良好
9.2 缺点
❌ 线性决策边界:无法处理非线性可分问题
❌ 对异常值敏感:需要数据预处理
❌ 特征工程依赖:需要手动处理非线性特征
❌ 多重共线性问题:特征高度相关时性能下降
十、实现示例(Python)
1 | from sklearn.linear_model import LogisticRegression |
十一、工程实践建议
- 数据预处理:处理缺失值、异常值、标准化特征
- 特征工程:创建多项式特征、交互特征以处理非线性
- 正则化选择:根据数据特点选择L1/L2正则化
- 超参数调优:使用交叉验证优化正则化强度
- 模型评估:不仅看准确率,还要关注精确率、召回率、F1分数
- 概率校准:使用Platt Scaling或Isotonic Regression校准概率
总结
逻辑回归作为机器学习中最基础且实用的分类算法,具有简单、高效、可解释的特点。虽然在处理复杂非线性问题时能力有限,但通过特征工程和正则化等技术,它仍然是许多实际应用中的首选算法,特别是在需要模型可解释性的场景中。