> 技术文档 > 逻辑回归(Logistic Regression)详解:从原理到实战一站式掌握

逻辑回归(Logistic Regression)详解:从原理到实战一站式掌握


1️⃣ 什么是逻辑回归?

逻辑回归(Logistic Regression)是一种用于二分类的监督学习算法,尽管名字中含有“回归”,它本质上是一个分类模型,预测输出值为属于某个类别的概率,最终通过阈值判断类别。

2️⃣ 逻辑回归的数学原理

线性模型预测的是连续值,而逻辑回归将线性回归的输出映射到 (0,1) 区间,通过概率来进行分类判断。

假设有输入特征向量 \\mathbf{x},权重向量 \\mathbf{w},模型为:

  • 线性部分:

z = \\mathbf{w}^\\top \\mathbf{x} + b 

3️⃣ 假设函数与 Sigmoid 函数

为了将线性输出转为概率,我们使用 Sigmoid 函数:

Sigmoid 函数定义:

\\sigma(z) = \\frac{1}{1 + e^{-z}} 

 逻辑回归模型输出:

\\hat{y} = \\sigma(\\mathbf{w}^\\top \\mathbf{x} + b) 

4️⃣ 损失函数与最大似然推导

✅ 对数损失函数(Binary Cross-Entropy Loss):

对于标签 y \\in \\{0, 1\\},预测概率为 \\hat{y},损失函数为:

\\mathcal{L}(y, \\hat{y}) = -\\left[y \\log(\\hat{y}) + (1 - y) \\log(1 - \\hat{y})\\right] 

对整个样本集求平均后作为总损失: 

J(\\mathbf{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] 

5️⃣ 模型训练:梯度下降法

✅ 参数更新公式(以批量梯度为例):

w_{j}​ 和 b 求梯度:

\\frac{\\partial J}{\\partial w_j} = \\frac{1}{m} \\sum_{i=1}^m (\\hat{y}^{(i)} - y^{(i)}) x_j^{(i)} 

\\frac{\\partial J}{\\partial b} = \\frac{1}{m} \\sum_{i=1}^m (\\hat{y}^{(i)} - y^{(i)}) 

然后更新权重和偏置: 

w_j := w_j - \\alpha \\cdot \\frac{\\partial J}{\\partial w_j} \\quad b := b - \\alpha \\cdot \\frac{\\partial J}{\\partial b} 

6️⃣ Python 实战:逻辑回归分类模型 

import numpy as npfrom sklearn.datasets import make_classificationfrom sklearn.linear_model import LogisticRegressionfrom sklearn.metrics import classification_report, confusion_matrix# 生成数据X, y = make_classification(n_samples=200, n_features=2, n_redundant=0, random_state=1)# 模型训练model = LogisticRegression()model.fit(X, y)# 预测与评估y_pred = model.predict(X)print(confusion_matrix(y, y_pred))print(classification_report(y, y_pred))

7️⃣ 模型评估指标(分类任务) 

指标 公式 含义 准确率 Accuracy \\frac{TP + TN}{TP + TN + FP + FN} 总体正确率 精确率 Precision \\frac{TP}{TP + FP} 判断为正中有多少是真的 召回率 Recall \\frac{TP}{TP + FN} 正样本中被识别的比例 F1 分数 2 \\cdot \\frac{\\text{Precision} \\cdot \\text{Recall}}{\\text{Precision} + \\text{Recall}} 平衡精确率与召回率

8️⃣ 逻辑回归 vs 线性回归 

特点 逻辑回归 线性回归 任务类型 分类(概率) 回归(连续值) 输出范围 (0,1) (-\\infty, +\\infty) 激活函数 Sigmoid 无 损失函数 对数损失 均方误差 应用 是否患病、是否点击广告等 房价预测、销量预测等

9️⃣ 优缺点总结

✅ 优点:

  • 输出为概率,易于解释

  • 实现简单,训练高效

  • 对线性可分数据效果好

  • 可以自然处理多分类(Softmax)

❌ 缺点:

  • 只能解决线性边界分类问题

  • 对异常值敏感

  • 需要手动特征工程

  • 易受特征共线性影响

📚 总结与延伸

  • 逻辑回归是分类任务的基础算法。

  • 对于非线性边界,可引入特征变换或核方法。

  • 学会从最大似然推导损失函数是关键基础。