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

1️⃣ 什么是逻辑回归?

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

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

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

假设有输入特征向量 ,权重向量 ,模型为:

  • 线性部分:

3️⃣ 假设函数与 Sigmoid 函数

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

Sigmoid 函数定义:

逻辑回归模型输出:

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

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

对于标签 ,预测概率为 ,损失函数为:

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

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

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

对 ​ 和 求梯度:

然后更新权重和偏置:

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

python 复制代码
import numpy as np
from sklearn.datasets import make_classification
from sklearn.linear_model import LogisticRegression
from 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 总体正确率
精确率 Precision 判断为正中有多少是真的
召回率 Recall 正样本中被识别的比例
F1 分数 平衡精确率与召回率

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

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

9️⃣ 优缺点总结

✅ 优点:

  • 输出为概率,易于解释

  • 实现简单,训练高效

  • 对线性可分数据效果好

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

❌ 缺点:

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

  • 对异常值敏感

  • 需要手动特征工程

  • 易受特征共线性影响

📚 总结与延伸

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

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

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

相关推荐
海上小飞龙1 小时前
【KMP算法-下篇】同一道题:Java 库函数 2600 微秒,手写 KMP 16 微秒
java·开发语言·算法
青少儿编程课堂1 小时前
后缀自动机解析:本质不同子串与最长重复片段统计
c++·python·算法·bfs·信息学竞赛
朝朝辞暮i1 小时前
C++ 第 12 课:局部变量、作用域、变量生命周期
开发语言·c++·算法
乐迪信息3 小时前
港口船舶逆行怎么管?AI防爆摄像机搭载智能检测算法
大数据·人工智能·深度学习·算法·计算机视觉
明志数科3 小时前
机器人训练数据采集中的任务拆解与原子动作清单SOP
人工智能·机器学习·机器人
Sirens.3 小时前
Java并发锁详解:六类锁策略与 synchronized 底层原理
java·前端·算法
和裕4 小时前
全纸结构重型纸箱能否满足 1 吨以上设备出口熏蒸豁免要求?通关合规性全解析
大数据·运维·网络·人工智能·算法
tangguofeng4 小时前
不带头结点的链队操作集(不含InitFlag)(C语言版)
算法
xailorliu5 小时前
SLIC_超像素算法
c++·opencv·目标检测·机器学习·计算机视觉
苏打豆6 小时前
CRISP源码阅读——基于ROS2力矩反馈控制器与速度加速度零空间
c++·线性代数·算法·矩阵·机器人