【机器学习:八、逻辑回归】

逻辑回归(Logistic Regression)

1. 逻辑回归的引出

在现实世界中,许多问题都涉及到分类任务。例如:

  • 判断一封邮件是否为垃圾邮件;
  • 预测某人是否会患某种疾病;
  • 确定图片中是否包含某种特定物体。

这些问题的输出通常是离散的(例如“是/否”或“0/1”)。传统的线性回归虽然适合连续输出的任务,但无法直接处理分类问题。因此,我们需要一种适合分类任务的模型,这便引出了逻辑回归(Logistic Regression)。

逻辑回归是一种适用于二分类和扩展到多分类任务的模型,其核心思想是通过引入逻辑函数(Logistic Function),将线性模型的输出映射到概率空间,使模型能够解决分类问题。

2. 逻辑回归的背景与意义

背景

逻辑回归最初起源于生物统计学领域,用于描述事件的发生概率。例如:

  • 一种药物的有效性(有效/无效);
  • 生物体存活的概率。

随着机器学习的普及,逻辑回归成为了分类任务中的经典算法之一,被广泛应用于各个领域。

意义

  1. 简单易实现:逻辑回归模型具有明确的数学定义,训练过程高效,易于实现。
  2. 可解释性强:逻辑回归的系数能够直观解释特征对分类的影响。
  3. 广泛适用性:适用于许多需要概率输出的分类任务,如医学诊断、信用评分等。
  4. 构造基础模型:逻辑回归常作为复杂模型的基石,例如神经网络。

3. 逻辑回归的定义

逻辑回归是一种概率模型,用于预测某事件发生的概率 P ( y = 1 ∣ x ) P(y=1|x) P(y=1∣x) 。其核心思想是将输入特征通过线性模型映射到一个实数值,再通过Sigmoid函数将其压缩到 [ 0 , 1 ] [0, 1] [0,1] 区间,表示为概率。

模型公式

  1. 线性模型

z = θ T x = θ 0 + θ 1 x 1 + θ 2 x 2 + ⋯ + θ n x n z = \theta^T x = \theta_0 + \theta_1 x_1 + \theta_2 x_2 + \dots + \theta_n x_n z=θTx=θ0+θ1x1+θ2x2++θnxn

其中:

  • x x x 是输入特征向量;
  • θ \theta θ 是模型参数(权重和偏置)。
  1. Sigmoid函数

h θ ( x ) = 1 1 + e − z h_\theta(x) = \frac{1}{1 + e^{-z}} hθ(x)=1+ez1

Sigmoid函数的性质:

  • z → + ∞ z \to +\infty z+ h θ ( x ) → 1 h_\theta(x) \to 1 hθ(x)1
  • z → − ∞ z \to -\infty z h θ ( x ) → 0 h_\theta(x) \to 0 hθ(x)0
  1. 预测概率

P ( y = 1 ∣ x ) = h θ ( x ) , P ( y = 0 ∣ x ) = 1 − h θ ( x ) P(y=1|x) = h_\theta(x), \quad P(y=0|x) = 1 - h_\theta(x) P(y=1∣x)=hθ(x),P(y=0∣x)=1hθ(x)

  1. 分类决策: 设定阈值 α \alpha α ,一般取 α = 0.5 \alpha = 0.5 α=0.5

y = { 1 if  h θ ( x ) ≥ α 0 if  h θ ( x ) < α y = \begin{cases} 1 & \text{if } h_\theta(x) \geq \alpha \\ 0 & \text{if } h_\theta(x) < \alpha \end{cases} y={10if hθ(x)αif hθ(x)<α

可视化图示

  • Sigmoid函数图:展示输入 z z z 映射到概率 h θ ( x ) h_\theta(x) hθ(x) 的曲线(从 -6 到 6 的 S 型函数)。

4. 逻辑回归的代价函数

4.1 为什么不能直接使用均方误差作为代价函数?

在线性回归中,我们使用均方误差(MSE)作为代价函数:

J ( θ ) = 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta) = \frac{1}{m} \sum_{i=1}^m \left( h_\theta(x^{(i)}) - y^{(i)} \right)^2 J(θ)=m1i=1m(hθ(x(i))y(i))2

但是,在逻辑回归中,使用 MSE 存在两个问题:

  1. 非凸性问题:MSE 会导致代价函数变为非凸函数,梯度下降可能无法找到全局最优解。
  2. 不符合概率模型的假设:逻辑回归是基于最大似然估计的,而 MSE 不满足这种统计假设。

4.2 交叉熵损失函数(Cross-Entropy Loss)

逻辑回归采用交叉熵作为代价函数,它基于最大似然估计:

J ( θ ) = − 1 m ∑ i = 1 m [ y ( i ) log ⁡ h θ ( x ( i ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − h θ ( x ( i ) ) ) ] J(\theta) = -\frac{1}{m} \sum_{i=1}^m \left[ y^{(i)} \log h_\theta(x^{(i)}) + \left(1 - y^{(i)}\right) \log \left(1 - h_\theta(x^{(i)})\right) \right] J(θ)=m1i=1m[y(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))]

  • y = 1 y = 1 y=1 :代价为 − log ⁡ h θ ( x ) -\log h_\theta(x) loghθ(x) ,即模型预测的概率 h θ ( x ) h_\theta(x) hθ(x) 越接近 1,损失越小;
  • y = 0 y = 0 y=0 :代价为 − log ⁡ ( 1 − h θ ( x ) ) -\log \left(1 - h_\theta(x)\right) log(1hθ(x)) ,即模型预测的概率 h θ ( x ) h_\theta(x) hθ(x) 越接近 0,损失越小。
可视化图示
  • 损失函数曲线:分别展示 y = 1 y=1 y=1 y = 0 y=0 y=0 的损失随 h θ ( x ) h_\theta(x) hθ(x) 变化的曲线。

4.3 代价函数的性质

  1. 凸函数:交叉熵损失是一个凸函数,便于梯度下降找到全局最优解。
  2. 偏导数公式

∂ J ( θ ) ∂ θ j = 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) \frac{\partial J(\theta)}{\partial \theta_j} = \frac{1}{m} \sum_{i=1}^m \left( h_\theta(x^{(i)}) - y^{(i)} \right) x_j^{(i)} θjJ(θ)=m1i=1m(hθ(x(i))y(i))xj(i)

这与线性回归的梯度更新公式形式类似,只是误差的定义不同。

5.逻辑回归的梯度下降法

梯度下降是逻辑回归模型训练中常用的优化算法,用于通过最小化代价函数来寻找模型参数 θ \theta θ 。以下是逻辑回归中梯度下降的具体过程:

5.1 梯度下降的目标

逻辑回归的目标是最小化代价函数 J ( θ ) J(\theta) J(θ) ,通常使用交叉熵损失函数

J ( θ ) = − 1 m ∑ i = 1 m [ y ( i ) log ⁡ h θ ( x ( i ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − h θ ( x ( i ) ) ) ] J(\theta) = -\frac{1}{m} \sum_{i=1}^m \left[ y^{(i)} \log h_\theta(x^{(i)}) + (1 - y^{(i)}) \log \left(1 - h_\theta(x^{(i)})\right) \right] J(θ)=m1i=1m[y(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))]

其中:

  • m m m 是样本数量;
  • h θ ( x ) = 1 1 + e − θ T x h_\theta(x) = \frac{1}{1 + e^{-\theta^T x}} hθ(x)=1+eθTx1 是 Sigmoid 函数的输出;
  • y ( i ) ∈ { 0 , 1 } y^{(i)} \in \{0, 1\} y(i){0,1} 是样本的真实标签。

梯度下降通过迭代更新参数 θ \theta θ 来逐步减小代价函数值。

5.2 梯度下降公式

2.1 代价函数的梯度

代价函数对参数 θ j \theta_j θj 的偏导数为:

∂ J ( θ ) ∂ θ j = 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) \frac{\partial J(\theta)}{\partial \theta_j} = \frac{1}{m} \sum_{i=1}^m \left( h_\theta(x^{(i)}) - y^{(i)} \right) x_j^{(i)} θjJ(θ)=m1i=1m(hθ(x(i))y(i))xj(i)

  • h θ ( x ( i ) ) − y ( i ) h_\theta(x^{(i)}) - y^{(i)} hθ(x(i))y(i) 是预测值与真实值的误差;
  • x j ( i ) x_j^{(i)} xj(i) 是第 i i i 个样本的第 j j j 个特征值。
2.2 参数更新公式

梯度下降的更新公式为:

θ j : = θ j − α ⋅ ∂ J ( θ ) ∂ θ j \theta_j := \theta_j - \alpha \cdot \frac{\partial J(\theta)}{\partial \theta_j} θj:=θjαθjJ(θ)

  • α \alpha α 是学习率(控制更新步伐的大小);
  • θ j \theta_j θj 是模型的参数。

将偏导数代入更新公式,得到:

θ j : = θ j − α m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) \theta_j := \theta_j - \frac{\alpha}{m} \sum_{i=1}^m \left( h_\theta(x^{(i)}) - y^{(i)} \right) x_j^{(i)} θj:=θjmαi=1m(hθ(x(i))y(i))xj(i)

这个公式表明,梯度下降的每次更新都依赖于样本预测值与真实值的误差。

5.3 梯度下降的具体步骤

  1. 初始化参数: 通常将所有参数 θ j \theta_j θj 初始化为零或随机小值。

  2. 计算预测值: 使用当前参数计算每个样本的预测值:

    h θ ( x ( i ) ) = 1 1 + e − θ T x ( i ) h_\theta(x^{(i)}) = \frac{1}{1 + e^{-\theta^T x^{(i)}}} hθ(x(i))=1+eθTx(i)1

  3. 计算代价函数: 计算当前参数下的代价函数值 J ( θ ) J(\theta) J(θ) ,以评估模型性能。

  4. 更新参数: 根据梯度下降公式更新参数 θ j \theta_j θj

  5. 检查收敛条件: 如果代价函数的值不再显著下降(或变化量小于某个阈值),或达到最大迭代次数,则停止迭代。

5.4 梯度下降的几种变体

  1. 批量梯度下降(Batch Gradient Descent)

    • 每次迭代使用所有样本计算梯度。
    • 优点:梯度估计准确。
    • 缺点:当数据量很大时,计算代价较高。
  2. 随机梯度下降(Stochastic Gradient Descent, SGD)

    • 每次迭代仅使用一个样本计算梯度。
    • 优点:计算效率高,适合大规模数据。
    • 缺点:更新过程不稳定,可能震荡于最优解附近。
  3. 小批量梯度下降(Mini-batch Gradient Descent)

    • 每次迭代使用一个小批量(例如 32 个样本)计算梯度。
    • 优点:结合了批量梯度下降和随机梯度下降的优点,更新稳定且效率较高。

5.5 学习率的影响

  • 学习率 α \alpha α 的大小对梯度下降的效果至关重要:
    • 学习率过大:更新步伐过快,可能导致错过最优解甚至发散。
    • 学习率过小:更新步伐过慢,收敛速度过慢。
学习率影响的可视化图示
  1. 学习率过大:代价函数的值震荡,甚至发散。
  2. 学习率适中:代价函数值平稳下降,快速收敛。
  3. 学习率过小:代价函数值下降缓慢。

5.6 梯度下降的优缺点

优点
  1. 简单易实现;
  2. 可扩展到大规模数据集;
  3. 支持在线学习。
缺点
  1. 对学习率敏感,需仔细调节;
  2. 容易陷入局部最优(对于非凸问题);
  3. 可能收敛到平坦区域(即梯度很小但未达到最优解)。

5.7 梯度下降的改进方法

  1. 自适应学习率

    • AdaGradRMSProp:自动调整学习率,适应不同梯度大小。
    • Adam:结合动量法和 RMSProp,收敛更快且稳定。
  2. 加动量(Momentum)

    • 在每次更新中加入历史梯度的动量,加速收敛过程。
  3. 正则化

    • 添加正则化项(如 L 1 L1 L1 L 2 L2 L2 ),以防止过拟合。

5.8 总结

逻辑回归的梯度下降法通过不断更新模型参数,优化交叉熵损失函数,是一种高效且经典的优化算法。结合不同的梯度下降变体和改进方法,可以提升训练效率和模型性能,使其适应各种规模和复杂度的数据集。

6. 逻辑回归的扩展

  1. 多分类问题:通过 Softmax 函数扩展逻辑回归至多分类任务。
  2. 正则化:加入 L 1 L1 L1 L 2 L2 L2 正则化项,防止过拟合。
  3. 模型评估:使用准确率、精确率、召回率、F1分数等指标评估模型性能。

7. 逻辑回归的总结

逻辑回归是机器学习中经典的分类算法,因其简单、可解释性强而被广泛应用。尽管随着深度学习的兴起,复杂模型逐渐成为主流,但逻辑回归仍然是理解分类问题的基础模型,是许多复杂模型的重要组成部分。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/504107.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习与计算机视觉 (博士)

文章目录 零、计算机视觉概述一、深度学习相关概念1.学习率η2.batchsize和epoch3.端到端(End-to-End)、序列到序列(Seq-to-Seq)4.消融实验5.学习方式6.监督学习的方式(1)有监督学习(2)强监督学习(3)弱监督学习(4)半监督学习(5)自监督学习(6)无监督学习(7)总结&#xff1a;不同…

n 维数组(张量)关于轴 axis 的理解

本文将从两个角度来理解 “轴” 的概念&#xff0c;着重阐述 1.2 节中的理解&#xff0c;并借此加深问题一和问题二的理解。 一、问题&#xff1a;如何理解 numpy 数组在轴上的 sum 操作 二、问题&#xff1a;torch 张量中的维度 dim 也是如此 一、问题&#xff1a;如何理解 n…

Vscode辅助编码AI神器continue插件

案例效果 1、安装或者更新vscode 有些版本的vscode不支持continue,最好更新到最新版,也可以直接官网下载 https://code.visualstudio.com/Download 2、安装continue插件 搜索continue,还未安装的,右下脚有个Install,点击安装即可 <

操作手册:集成钉钉审批实例消息监听配置

此文档将记录在慧集通平台怎么实现钉钉审批实例结束或发起或取消时&#xff0c;能够实时的将对应的实例数据抓取出来送入第三方系统 集成平台配置 1、配置中心库&#xff0c;存储钉钉发送的消息&#xff0c;可以忽略&#xff0c;若不配置&#xff0c;则钉钉的消息将不再记录到…

mysql -> 达梦数据迁移(mbp大小写问题兼容)

安装 注意后面初始化需要忽略大小写 初始化程序启动路径 F:\dmdbms\tool dbca.exe 创建表空间&#xff0c;用户&#xff0c;模式 管理工具启动路径 F:\dmdbms\tool manager.exe 创建表空间 创建用户 创建同名模式&#xff0c;指定模式拥有者TEST dts 工具数据迁移 mysql -&g…

MacBook Linux 树莓派raspberrypi安装Golang环境

个人还是比较喜欢用go语言开发,比java开发效率高,以后会持续更新golang相关的博客 MacBook安装golang环境 官方下载地址: https://golang.google.cn/dl/ 官方下载Mac对应版本 tar.gz包 OS macOS 版本 x86-64 #解压 tar -zxvf xxx.tar.gz #配置环境变量 vim ~/.zshrc #文件最后…

基于LabVIEW的BeamGage自动化接口应用

设置 National Instruments LabVIEW可执行程序需要被配置为使用.NET 4框架。.NET允许自定义可执行程序的运行方式。可通过以下方式实现&#xff1a; 在LabVIEW安装目录中创建一个名为LabVIEW.exe.config的文本文件&#xff08;例如&#xff1a;C:\Program Files\National Ins…

SQL概述

SQL SQL&#xff08;Structured Query Language&#xff09;是“结构化查询语言”&#xff0c;它是对关系型数据库的操作语言。它可以应用到所有关系型数据库中。如&#xff1a;MySQL、Oracle、SQL Server 等。除了 SQL 标准之外&#xff0c;大部分 SQL 数据库程序都拥有它们自…

WandB使用笔记

最近看代码&#xff0c;发现代码中有wandb有关的内容&#xff0c;搜索了一下发现是一个模型训练工具&#xff0c;然后学习了一下&#xff0c;这里记录一下使用过程&#xff0c;方便以后查阅。 WandB使用笔记 登录WandB 并 创建团队安装 WandB 并 登录模型训练过程跟踪模型版本管…

中国科技统计年鉴EXCEL版(2021-2023年)-社科数据

中国科技统计年鉴EXCEL版&#xff08;2021-2023年&#xff09;-社科数据https://download.csdn.net/download/paofuluolijiang/90028724 https://download.csdn.net/download/paofuluolijiang/90028724 中国科技统计年鉴提供了从2021至2023年的详尽数据&#xff0c;覆盖了科技…

Cursor无限续杯——解决Too many free trials.

前情提要 我们都知道Cursor对新用户是有14天且500条免费限制的。 一般情况下&#xff0c;当14天过期&#xff0c;是可以注销账户再重新注册&#xff0c;这样就可以继续拥有14天的体验时长。 但是&#xff01;&#xff01;如果使用超过500次&#xff0c;Cusor就会把你的电脑I…

深入学习RabbitMQ的Direct Exchange(直连交换机)

RabbitMQ作为一种高性能的消息中间件&#xff0c;在分布式系统中扮演着重要角色。它提供了多种消息传递模式&#xff0c;其中Direct Exchange&#xff08;直连交换机&#xff09;是最基础且常用的一种。本文将深入介绍Direct Exchange的原理、应用场景、配置方法以及实践案例&a…

Mysql--基础篇--事务(ACID特征及实现原理,事务管理模式,隔离级别,并发问题,锁机制,行级锁,表级锁,意向锁,共享锁,排他锁,死锁,MVCC)

在MySQL中&#xff0c;事务&#xff08;Transaction&#xff09;是一组SQL语句的集合&#xff0c;这些语句一起被视为一个单一的工作单元。事务具有ACID特性&#xff0c;确保数据的一致性和完整性。通过事务&#xff0c;可以保证多个操作要么全部成功执行&#xff0c;要么全部不…

Linux下文件重定向

文章目录 一 重定向的基本使用1. 标准输出重定向2. 标准错误输出重定向3. 同时重定向标准输出和标准错误输出4. 输入重定向&#xff08;<&#xff09; 二 重定向基本原理1. 文件描述符概念2.什么是文件描述符3. 文件描述符的分配规则初始分配与默认对应关系动态分配规则 4. …

Android车载音频系统目录

目录 第一章 1.1 Android Automotive&#xff08;一&#xff09; 1.2 Android Automotive&#xff08;二&#xff09; 1.3 Android Automotive&#xff08;三&#xff09; 第二章 2.1 Android车载音频系统概览 2.2 车载音频焦点 2.3 车载音频配置 2.4 Audio control HAL…

【Linux】深入理解文件系统(超详细)

目录 一.磁盘 1-1 磁盘、服务器、机柜、机房 &#x1f4cc;补充&#xff1a; &#x1f4cc;通常网络中用高低电平&#xff0c;磁盘中用磁化方向来表示。以下是具体说明&#xff1a; &#x1f4cc;如果有一块磁盘要进行销毁该怎么办&#xff1f; 1-2 磁盘存储结构 ​编辑…

Spring项目创建流程及配置文件bean标签参数简介

1. 项目搭建流程 1. pom.xml中引入依赖Spring-webMVC <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><…

PHP进阶-在Ubuntu上搭建LAMP环境教程

本文将为您提供一个在Ubuntu服务器上搭建LAMP&#xff08;Linux, Apache, MySQL, PHP&#xff09;环境的完整指南。通过本文&#xff0c;您将学习如何安装和配置Apache、MySQL、PHP&#xff0c;并将您的PHP项目部署到服务器上。本文适用于Ubuntu 20.04及更高版本。 一、系统更新…

Web应用安全-漏洞扫描器设计与实现

摘 要 随着Web2.0、社交网络、微博等一系列新型的互联网产品的诞生&#xff0c;基于Web环境的互联网应用越来越广泛&#xff0c;企业信息化的过程中各种应用都架设在Web平台上。Web应用的迅速发展也引起黑客们的强烈关注&#xff0c;接踵而至的就是Web安全威胁的凸显&#xff…

【漏洞工具】小米路由器任意文件读取漏洞python图形化框架利用工具(poc|exp)

there is no tomorrow 工具利用 漏洞扫描 漏洞利用 poc 本文工具、源码获取 因本工具涉及到源码分享&#xff0c;如有需求&#xff0c;请私聊圈主 文笔生疏&#xff0c;措辞浅薄&#xff0c;望各位大佬不吝赐教&#xff0c;万分感谢。 免责声明&#xff1a;由于传播或利用…