当前位置: 首页 > ds >正文

【第二章:机器学习与神经网络概述】03.类算法理论与实践-(1)逻辑回归(Logistic Regression)

第二章: 机器学习与神经网络概述

第三部分:类算法理论与实践

第一节:逻辑回归(Logistic Regression)

内容:Sigmoid函数、损失函数、梯度下降优化。


一、逻辑回归简介

逻辑回归是一种用于二分类任务的统计学习方法。尽管名字中带有“回归”,但逻辑回归本质是分类算法,其输出是一个概率值,通过设定阈值来判定类别。


二、模型表达形式

逻辑回归模型如下:

\hat{y} = \sigma(z) = \frac{1}{1 + e^{-z}} \quad 其中 \ z = w^T x + b

  • \hat{y}:预测结果,表示属于“正类”的概率

  • x:输入特征向量

  • w:权重参数

  • b:偏置项

  • \sigma(\cdot):Sigmoid 激活函数


三、Sigmoid 函数

Sigmoid 函数将任意实数映射到 (0,1) 区间,公式如下:

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

性质:
  • 当 z→+∞,σ(z)→1

  • 当 z→−∞,σ(z)→0

  • σ(0)=0.5

它保证输出可以解释为“概率”。

上图展示了 Sigmoid 函数 \sigma(z) = \frac{1}{1 + e^{-z}} 的曲线形状:

  • 当 z→+∞z 时,函数值趋近于 1;

  • 当 z→−∞z 时,函数值趋近于 0;

  • 在 z = 0 处,函数值为 0.5,曲线最陡。


四、损失函数(对数似然损失)

逻辑回归使用的损失函数是对数损失函数(Log Loss),其目标是最大化似然函数,等价于最小化负对数似然:

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

在整体样本上取平均作为总损失:

J(w, b) = \frac{1}{n} \sum_{i=1}^n \mathcal{L}(y_i, \hat{y}_i)

上图展示了对数损失函数(Log Loss)随预测概率的变化曲线:

  • 红线:真实标签 y = 1,预测越接近 1,损失越低;

  • 蓝线:真实标签 y = 0,预测越接近 0,损失越低;

  • 当预测概率极端错误(如接近 1 但实际为 0),损失会迅速升高。

这是逻辑回归训练中优化目标的重要基础之一。


五、参数优化:梯度下降(Gradient Descent)

为最小化损失函数,使用梯度下降算法不断更新参数:

  • 权重更新:

w := w - \alpha \cdot \frac{\partial J}{\partial w}

  • 偏置更新:

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

其中 α 是学习率。

常见优化策略:
  • Batch Gradient Descent(全量)

  • Stochastic Gradient Descent(SGD,单样本)

  • Mini-batch Gradient Descent(小批量)


六、Python 示例(使用 sklearn)
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification
import matplotlib.pyplot as plt
import numpy as np# 创建数据
X, y = make_classification(n_samples=200, n_features=2, n_redundant=0, random_state=1)# 拟合逻辑回归模型
model = LogisticRegression()
model.fit(X, y)# 绘制决策边界
x_min, x_max = X[:,0].min(), X[:,0].max()
y_min, y_max = X[:,1].min(), X[:,1].max()
xx, yy = np.meshgrid(np.linspace(x_min, x_max, 300),np.linspace(y_min, y_max, 300))
Z = model.predict(np.c_[xx.ravel(), yy.ravel()])
Z = Z.reshape(xx.shape)plt.contourf(xx, yy, Z, alpha=0.3)
plt.scatter(X[:,0], X[:,1], c=y, edgecolor='k')
plt.title("逻辑回归分类边界")
plt.xlabel("Feature 1")
plt.ylabel("Feature 2")
plt.grid(True)
plt.show()


七、逻辑回归的优点与局限
优点说明
模型简单易于理解与实现
输出概率可以根据概率灵活设定阈值
训练快速适合大规模数据
局限说明
线性模型对于非线性问题效果较差
易受异常值影响需预处理数据
多分类需扩展需要 One-vs-Rest 或 Softmax 扩展

八、逻辑回归的应用场景
  • 垃圾邮件检测(是否垃圾)

  • 广告点击预测

  • 医疗诊断(是否患病)

  • 用户是否流失预测

http://www.xdnf.cn/news/14786.html

相关文章:

  • 【软考高级系统架构论文】论边缘计算及其应用
  • 秋招Day14 - MySQL - 事务
  • [HTML]iframe显示pdf,隐藏左侧分页
  • 亚矩云手机赋能Vinted矩阵运营:破解二手电商多账号与本地化困局
  • 前端面试记录
  • 代码随想录|单调栈|04接雨水
  • SpringBoot中使用表单数据有效性检验
  • UE5 闪烁的光斑
  • Lamp和友点CMS一键部署脚本(Rocky linux)
  • 75、单元测试-嵌套测试
  • 揭开 Git 裸仓库的神秘面纱:`git clone --mirror` 详解与使用指南
  • Windows电脑数据恢复终极指南:从原理到实战
  • 《去哪儿网Redis高并发实战:从问题定位到架构升级》
  • redis如何使用IO多路复用
  • 黑马python(十三)
  • Windows11 无法发现局域网内设备解决方法
  • SQL Server基础语句4:数据定义
  • 【C++开发】CMake构建工具
  • VBA基础之对象
  • CentOS 7.9 系统安装 Percona XtraBackup(含 xtrabackup 和 innobackupex 工具)的详细步骤
  • 深入剖析Flink内存管理:架构、调优与实战指南
  • 如何仅用AI开发完整的小程序<4>—小程序页面创建与删除
  • Kafka动态配置深度解析
  • Azure Devops
  • JMeter API 并发性能测试计划JMX文件解析
  • Elasticsearch、Faiss、Milvus在向量索引实现上的核心差
  • Redis 8.0向量库 vs 传统向量数据库:大模型知识库开发选型全指南
  • 华为公布《鸿蒙编程语言白皮书》V1.0 版:解读适用场景
  • HarmonyOS NEXT端侧工程调用云侧能力实现业务功能
  • 跨个体预训练与轻量化Transformer在手势识别中的应用:Bioformer