4. 机器学习-逻辑回归
4. 机器学习-逻辑回归
1)是什么
逻辑回归(Logistic Regression) 是一种用于解决分类问题的监督学习算法,尤其适用于二分类任务(如判断邮件是否为垃圾邮件、用户是否会点击广告等)。尽管名字中有“回归”,但它实际上是一种分类方法。
2)为什么
它通过一个S型函数(Sigmoid函数) 将线性回归的输出映射到 [0, 1] 区间,表示样本属于某一类的概率。

输出结果解释:若概率 > 0.5,则预测为正类;否则为负类。
✅ 特点:简单、可解释性强、训练速度快。
我们使用逻辑回归的原因包括:
- 可解释性强:每个特征的系数(权重)可以直接反映其对结果的影响程度。
- 计算效率高:模型训练和预测速度较快,适合大数据集。
- 基础性强:是许多复杂模型(如神经网络)的基础模块。
- 输出概率值:不仅给出类别预测,还能提供置信度(概率),便于后续决策。
- 适合线性可分数据:当特征与类别之间存在近似线性关系时,表现良好。
🎯 例如:在金融领域中,银行可以用逻辑回归评估客户违约风险,通过收入、信用评分等变量预测是否可能逾期。
3)什么时候用
逻辑回归适用于以下场景:
- 二分类问题:如垃圾邮件识别、疾病诊断(有/无)、点击率预测等。
- 特征与目标之间大致呈线性关系:即变量之间的关系可以用直线或平面较好地拟合。
- 需要模型可解释性:如医疗、金融等领域,必须能说明“为什么做出这个判断”。
- 数据量较大但维度适中:适合处理中等规模的数据集。
- 作为基准模型:常被用作其他复杂模型的对比基线。
💡 示例:电商平台用逻辑回归预测用户是否会购买某商品,基于浏览时间、历史订单等信息。
4)什么时候不用
逻辑回归并非万能,以下情况应谨慎使用或避免:
- 非线性关系明显:如果数据分布复杂,比如圆形边界、异或结构等,逻辑回归无法有效建模。
- 多分类问题(除非使用 One-vs-Rest 或 Softmax 扩展):原生逻辑回归只支持二分类,多分类需额外处理。
- 特征高度相关或多重共线性严重:可能导致系数不稳定,影响解释性。
- 数据量极小:虽然逻辑回归对小数据也适用,但如果样本太少,容易过拟合。
- 需要高精度且特征复杂:相比随机森林、XGBoost、深度学习等,逻辑回归精度通常较低。
❌ 举个例子:图像识别任务(如人脸识别)不适合用逻辑回归,因为像素之间的关系高度非线性。
5)总结
| 项目 | 内容 |
|---|---|
| 核心用途 | 二分类问题建模 |
| 优点 | 简单、高效、可解释、输出概率 |
| 缺点 | 假设线性关系、不擅长非线性问题、对异常值敏感 |
| 适用场景 | 风险评估、市场营销、医学诊断等 |
| 替代方案 | 支持向量机(SVM)、决策树、随机森林、神经网络等 |
📌 一句话总结:
逻辑回归是机器学习中最基础且实用的分类算法之一,尤其适合需要快速部署和结果可解释的场景。虽然它不能解决所有问题,但在正确的情境下,它是强大而优雅的选择。
概念
4.1 Sigmoid函数
Sigmoid 函数是逻辑回归的核心组成部分,它将任意实数值映射到 (0, 1) 区间,表示样本属于正类的概率。
公式:

🔍 特点
- 输出值始终在 0 到 1 之间;
- 当 z→∞,σ(z)→1;当 z→−∞,σ(z)→0;
- 曲线呈“S”形,平滑且连续,便于求导(利于优化)。
📌 示例

💡 注意:虽然叫“Sigmoid”,但也可用其他激活函数(如 Softmax)扩展到多分类。
4.2 优化手段
逻辑回归的目标是找到最优参数 β,使模型预测尽可能准确。常用两种方法:
4.2.1 极大似然估计
✅ 原理
假设每个样本的标签服从伯努利分布,我们希望最大化所有样本联合出现的概率(即似然函数)。
📈 数学表达
对于二分类问题,似然函数为:

🔧 实际做法
等价于最小化负对数似然,也就是最小化损失函数。
4.2.2 最小化交叉熵
✅ 定义
交叉熵损失函数是极大似然估计的另一种形式,常用于深度学习和分类任务。

🎯 目标
通过梯度下降法更新参数,使得损失函数不断减小。
📉 梯度计算

✅ 小结:
逻辑回归的本质是 使用 Sigmoid 映射 + 交叉熵损失 + 梯度下降优化。
4.3 混淆矩阵(重要)
混淆矩阵是评估分类模型性能的基础工具,特别适用于不平衡数据集。
| 预测为正类 | 预测为负类 | |
|---|---|---|
| 实际为正类 | TP(真阳性) | FN(假阴性) |
| 实际为负类 | FP(假阳性) | TN(真阴性) |
TP:正确预测为正类(如:真正患病)
FP:错误预测为正类(如:健康误判为患病)
FN:错误预测为负类(如:患病未被发现)
TN:正确预测为负类(如:健康正确识别)
🧩 应用场景
医疗诊断中更关注 减少 FN(不能漏诊);
广告点击预测中更关注 减少 FP(避免浪费预算)。
💡 提示:可结合 sklearn.metrics.confusion_matrix() 快速生成。
4.4 分类任务的评估(重要)
不同的业务需求需要不同指标。以下是常用的评价指标:
4.4.1 准确率

✅ 优点
简单直观,反映整体正确率。
❌ 缺点
在类别不平衡时表现失真。例如:99% 负类,1% 正类,模型全预测为负类也能达到 99% 准确率。
🚫 不推荐用于严重不平衡数据!
4.4.2 精确率

✅ 含义
在预测为正类的样本中,有多少是真正的正类。
关注“预测结果的可靠性”。
🎯 场景
垃圾邮件过滤:不想把正常邮件错标为垃圾(低 FP),所以要高 Precision。
4.4.3 召回率

✅ 含义
在真实为正类的样本中,有多少被成功找出。
关注“是否漏掉重要样本”。
🎯 场景
疾病筛查:宁可误报,也不能漏诊 → 要高 Recall。
4.4.4 F1-score

✅ 优点
是 Precision 和 Recall 的调和平均,平衡两者;
当一个指标很高而另一个很低时,F1 会显著下降。
🎯 使用建议
在 Precision 和 Recall 都重要的场景下使用(如信息检索、推荐系统)。
4.4.5 ROC曲线
✅ 定义
ROC 曲线以 假正率(FPR) 为横轴,真正率(TPR) 为纵轴绘制而成。

📈 绘制方式
改变分类阈值(从 0 到 1),计算每一点的 TPR 和 FPR;
连接这些点形成曲线。

📌 蓝色线是你模型的表现,红色线是“瞎猜”的底线——好的模型应该远高于这条线。
✅ 解读
曲线越靠近左上角越好;
对角线代表随机猜测(AUC = 0.5);
完美分类器 AUC = 1。
4.4.6 AUC面积
✅ 定义
AUC 是 ROC 曲线下方的面积,范围 [0, 1]。
✅ 意义
AUC 越大,说明模型区分正负类的能力越强;
不依赖于具体阈值,适合比较不同模型。
📊 常见参考值
| AUC | 解读 |
|---|---|
| < 0.5 | 模型不如随机猜测 |
| 0.5–0.7 | 较弱 |
| 0.7–0.8 | 中等 |
| 0.8–0.9 | 良好 |
| > 0.9 | 优秀 |
✅ 总结对比表
| 指标 | 公式 | 关注重点 | 适用场景 |
|---|---|---|---|
| 准确率 | (TP+TN)/(全部) | 整体正确率 | 类别均衡的数据 |
| 精确率 | TP/(TP+FP) | 预测为正类的准确性 | 控制误报(如广告投放) |
| 召回率 | TP/(TP+FN) | 找出所有正类的能力 | 控制漏报(如疾病检测) |
| F1-score | 2×P×R/(P+R) | 平衡精确率与召回率 | 两者都重要 |
| ROC/AUC | 曲线下面面积 | 模型整体排序能力 | 多模型比较、阈值不固定时 |
📌 一句话总结:
逻辑回归虽简单,但其背后的数学基础(Sigmoid、MLE、交叉熵)、优化过程以及评估体系(混淆矩阵、F1、AUC)构成了现代分类建模的核心框架。理解这些概念,才能真正掌握如何选择、训练和评估一个分类模型。
更多推荐
所有评论(0)