逻辑回归 (Logistic Regression)

文章目录

  • 逻辑回归 (Logistic Regression)
    • 问题的引出
    • Sigmoid function
    • 逻辑回归的解释
    • 决策边界 (Decision boundary)
    • 逻辑回归的代价函数
    • 机器学习中代价函数的设计
      • 1. 代价函数的来源
        • (1)从概率模型推导而来(统计学习视角)
        • (2)直接针对算法目标设计(优化视角)
      • 2. 代价函数与算法的适配性
      • 总结
    • 逻辑回归的简化代价函数
    • 梯度下降实现

逻辑回归 (Logistic Regression)

问题的引出

假设使用线性回归来解决分类问题

在这里插入图片描述

看起来还不错,但若是沿横轴正方向的远处加入训练样本,就会导致线性回归的拟合线偏移,如下图所示。

在这里插入图片描述

图中决策边界右移,这样就会导致先前的部分训练样本预测值从 yes 变为 no。

整个模型变的很糟糕。

分类问题的目标是找到一个决策边界,能够正确区分不同类别的样本。理想情况下,决策边界应该由靠近边界的样本(支持向量)决定,而不是由远处的样本点决定。

在分类问题中,增加新的训练样本(尤其是远离决策边样的样本)不应显著改变原有的分类结论。

由此引入逻辑回归来解决分类问题。

Sigmoid function

为了更好拟合训练样本,整个线条呈现 s 型,由此引入 Sigmoid function(又常称为 logistic函数)。

在这里插入图片描述

Sigmoid函数,又称logistic函数,是最早使用的激活函数之一。但是由于其固有存在的一些缺点,如今很少将其作为激活函数,但是依然常用于二分类问题中的概率划分。

在这里插入图片描述

将线性回归的结果,通过sigmoid函数转换到0-1的范围,实现分类。

逻辑回归的解释

在这里插入图片描述

f w ⃗ , b ( x ⃗ ) = P ( y = 1 ∣ x ⃗ ; w ⃗ , b ) f_{\vec{w}, b}(\vec{x}) = P(y = 1|\vec{x};\vec{w},b) fw ,b(x )=P(y=1∣x ;w ,b)
表示为给定输入特征为 x x x y y y 等于 1 1 1 的概率。

(given x, and with parameters w and b)

在这里插入图片描述

threshold 阈值

通过与阈值进行比较来决定 y ^ \hat{y} y^ 0 0 0 还是 1 1 1,通常将 0.5 0.5 0.5 作为阈值。

决策边界 (Decision boundary)

在这里插入图片描述

决策边界便是让 z = 0 z = 0 z=0 的地方,在这里设 w ⃗ = [ 1 , 1 ] \vec{w} = [1, 1] w =[1,1],由此令 z = 0 z = 0 z=0,则 x 1 + x 2 = 3 x_1 + x _ 2 = 3 x1+x2=3,在这个例子中通过线性规划可以做出对应的直线,如上图所示。

决策边界也不一定是直线,通过前面学过的多项式回归,可以得到下图关系。

在这里插入图片描述

先通过梯度下降算法对样本拟合出曲线或者曲面或者更高纬度,然后对其进行分类。

在这里插入图片描述

通过多项式特征,可以获得非常复杂的决策边界,换句话说逻辑回归可以拟合非常复杂的数据。

逻辑回归的代价函数

在这里插入图片描述

线性回归中,通过平方误差作为代价函数来决定 w ⃗ \vec{w} w b b b 的取值,同理逻辑回归也可以去寻找对应的代价函数来决定 w ⃗ \vec{w} w b b b 的取值。

convex function 下凸函数

concave function 上凸函数

在这里插入图片描述

如果同样使用前面平方误差作为代价函数的话,从上图结果来看,这将导致代价函数为非下凸函数 (non-convex function),使用梯度下降会导致很容易陷入局部最小值,而非全局最小值。因此,平方误差代价函数对于逻辑回归并不是一个好的选择。

将以下符号称为单个训练实例的损失 (loss)。
L ( f w ⃗ , b ( x ⃗ ( i ) ) , y ( i ) ) L(f_{\vec{w}, b}(\vec{x}^{(i)}), y^{(i)}) L(fw ,b(x (i)),y(i))

例如,在之前学到的线性回归中,代价函数形式如下。
J ( w , b ) = 1 2 m ∑ i = 1 m ( y ^ ( i ) − y ( i ) ) 2 J(w, b) = \frac{1}{2m} \sum_{i=1}^m (\hat y^{(i)} - y^{(i)}) ^ 2 J(w,b)=2m1i=1m(y^(i)y(i))2

因此单个训练实例的损失定义如下。( 1 2 \frac{1}{2} 21 要提到内部单项)
L ( f w ⃗ , b ( x ⃗ ( i ) ) , y ( i ) ) = 1 2 ( f w ⃗ , b ( x ⃗ ( i ) ) − y ⃗ ( i ) ) L(f_{\vec{w}, b}(\vec{x}^{(i)}), y^{(i)}) = \frac{1}{2}(f_{\vec{w}, b}(\vec{x}^{(i)}) - \vec{y}^{(i)}) L(fw ,b(x (i)),y(i))=21(fw ,b(x (i))y (i))

另外可以得到,以下定义。
J ( w , b ) = 1 m ∑ i = 1 m L ( f w ⃗ , b ( x ⃗ ( i ) ) , y ( i ) ) J(w, b) = \frac{1}{m} \sum_{i = 1}^{m}L(f_{\vec{w}, b}(\vec{x}^{(i)}), y^{(i)}) J(w,b)=m1i=1mL(fw ,b(x (i)),y(i))

这里选用以下函数作为逻辑回归的代价函数,个人感觉是一种针对sigmoid函数的 e x e^x ex 的特殊构造。(不到怎么推出来的,问就是前人的智慧😂)
L ( f w ⃗ , b ( x ⃗ ( i ) ) , y ( i ) ) = { − log ⁡ ( f w ⃗ , b ( x ⃗ ( i ) ) ) i f y ( i ) = 1 − log ⁡ ( 1 − f w ⃗ , b ( x ( i ) ) ) i f y ( i ) = 0 L(f_{\vec{w}, b}(\vec{x}^{(i)}), y^{(i)}) = \begin{cases} -\log(f_{\vec{w}, b}(\vec{x}^{(i)})) &if \quad y^{(i)} = 1\\ -\log (1 - f_{\vec{w}, b}(x^{(i)})) &if \quad y^{(i)} = 0 \end{cases} L(fw ,b(x (i)),y(i))={log(fw ,b(x (i)))log(1fw ,b(x(i)))ify(i)=1ify(i)=0

称为二分类交叉熵损失(Binary Cross-Entropy, BCE)

在这里插入图片描述

在这里插入图片描述

如果模型预测 99.9% 的概率为恶性肿瘤,但是结果为非恶性肿瘤,loss 就会非常高用来惩罚模型。

用原来的平方和的损失函数导致在逻辑回归情况下,函数是非凹非凸的,会落入局部最小值。两个拆开的凸函数达到局部最优,也就是整体的全局最优,而改用为这个,把逻辑回归分为训练事例 y y y 的真实值为 0 0 0,为 1 1 1,依据log形成两个拆开的凸函数。

在这里插入图片描述

事实证明选择这个损失函数,整体函数为下凸函数 (convex function),这个构型是高斯误差方程。

机器学习中代价函数的设计

1. 代价函数的来源

(1)从概率模型推导而来(统计学习视角)
  • 核心思想:假设数据服从某种概率分布,通过极大似然估计(MLE)最大后验估计(MAP) 推导出损失函数。
  • 典型例子
    • 均方误差(MSE):假设噪声服从高斯分布(线性回归)。
    • 交叉熵损失:假设标签服从伯努利/多项分布(逻辑回归、Softmax分类)。
    • 泊松损失:假设数据服从泊松分布(计数数据回归)。
  • 为什么有效
    这类损失函数天然具备概率解释,优化它们等价于最大化数据似然或后验概率。
(2)直接针对算法目标设计(优化视角)
  • 核心思想:不依赖概率假设,而是直接定义优化目标(如间隔最大化、稀疏性等)。
  • 典型例子
    • Hinge Loss(SVM):目标是最大化分类间隔,无显式概率模型。
    • 0-1损失:直接优化分类错误率(但不可导,实际常用替代损失)。
    • 自定义损失:如Focal Loss(解决类别不平衡)、Huber Loss(鲁棒回归)。
  • 为什么有效
    这些函数直接反映算法的核心目标(如分类准确性、鲁棒性),即使没有概率解释。

2. 代价函数与算法的适配性

不同算法使用不同的代价函数,因为它们的目标假设不同:

算法典型代价函数设计依据
线性回归均方误差(MSE)高斯噪声假设 + MLE
逻辑回归交叉熵损失伯努利分布 + MLE
支持向量机(SVM)Hinge Loss最大化分类间隔(几何目标)
决策树基尼系数/信息增益分割纯度的直接度量
神经网络多种(MSE/交叉熵等)根据任务选择(回归/分类)

总结

  • 回归问题:常用MSE(高斯假设)、MAE(拉普拉斯假设)、Huber Loss(鲁棒性)。
  • 分类问题:常用交叉熵(概率校准)、Hinge Loss(间隔最大化)。
  • 特定需求:如类别不平衡用Focal Loss,稀疏性用L1正则。

逻辑回归的简化代价函数

在这里插入图片描述

合并二分类交叉熵损失(Binary Cross-Entropy, BCE)

L ( f w ⃗ , b ( x ⃗ ( i ) ) , y ( i ) ) = − y ( i ) log ⁡ ( f w ⃗ , b ( x ⃗ ( i ) ) ) − ( 1 − y ( i ) ) log ⁡ ( 1 − f w ⃗ , b ( x ( i ) ) ) L(f_{\vec{w}, b}(\vec{x}^{(i)}), y^{(i)}) = -y ^{(i)} \log(f_{\vec{w}, b}(\vec{x}^{(i)})) - (1 - y ^{(i)}) \log (1 - f_{\vec{w}, b}(x^{(i)})) L(fw ,b(x (i)),y(i))=y(i)log(fw ,b(x (i)))(1y(i))log(1fw ,b(x(i)))

在这里插入图片描述

梯度下降实现

在这里插入图片描述

在这里插入图片描述

上述求导中,将 log ⁡ \log log 默认看为了 ln ⁡ \ln ln 然后进行。

在这里插入图片描述

上述形式看起来很像线性回归所求的,但是注意 f w ⃗ , b ( x ⃗ ( i ) ) f_{\vec{w}, b}(\vec{x}^{(i)}) fw ,b(x (i)) 已经发生了改变。

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

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

相关文章

关于C语言的模拟物理模型

声明:本文全部代码效果基于C语言easyx图形界面库。 引言 关于很多游戏和模型的开发,都需要模拟真实的物理模型 比如:基本矢量运动模型(位移,速度,加速度),重力模型,碰撞…

C++编译与链接:从源码到可执行文件的魔法之旅(Visual Studio实践)

文章目录 **C++编译与链接:从源码到可执行文件的魔法之旅(Visual Studio实践)****一、C++编译器的工作流程****二、Visual Studio环境配置实战****三、示例项目:Hello World全流程解析****四、高级技巧与工具链****五、总结与参考资料**C++编译与链接:从源码到可执行文件的…

现代C++的范式演进与工程实践深度解析(本文序号不知道怎么整的,有点问题)

引言:C++的复兴时代 在经历了"已死语言"的质疑后,现代C++正迎来前所未有的复兴。据2024年TIOBE指数显示,C++以8.33%的占比稳居第三,较2020年上升2.1个百分点。这种复兴并非偶然——随着C++20标准的全面落地和C++23特性的逐步实现,这门已有40年历史的语言正在系…

通过gird布局实现div的响应式分布排列

目标&#xff1a;实现对于固定宽度的div盒子在页面中自适应排布&#xff0c;并且最后一行的div盒子可以与前面的盒子对齐。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" con…

WSL2-Ubuntu22.04安装URSim5.21.3

WSL2-Ubuntu22.04安装URSim5.21.3 准备安装启动 准备 名称版本WSL2Ubuntu22.04URSim5.21.3VcXsrvNaN WSL2安装与可视化请见这篇:WSL2-Ubuntu22.04-配置。 安装 我们是wsl2-ubuntu22.04&#xff0c;所以安装Linux版本的URSim&#xff0c;下载之前需要注册一下&#xff0c;即…

产品研发项目管理6大痛点

在产品研发项目管理实践中&#xff0c;企业普遍面临六大系统性挑战&#x1f937;‍♀️&#xff0c;直接影响研发效能与战略目标达成&#x1f514;&#xff0c;具体表现为&#xff1a; ① 产品需求管理不完善&#xff1a;需求与市场脱节&#xff0c;需求不明确、需求变更频繁…

计算机网络基础概论

计算机网络基础概论 目录 一、网络基本概念 1.1. 网络 1.2 互联网 1.3 ip地址 1.3.1 作用 1.3.2 分类 1.4 MAC地址 1.4.1 MAC地址与 IP 地址的关系 1.5 网络协议 二、网络分层模型 2.1 物理层 2.2 数据链路层 2.3 网络层 2.4 传输层 2.5 会话层 2.6 表示层 2.7…

Windows下导入文件中的环境变量

在Windows批处理脚本&#xff08;.bat&#xff09;中&#xff0c;通过文件获取并设置环境变量通常涉及逐行读取文件内容并动态赋值给变量。以下是具体实现方法及示例&#xff1a; 一、从文件读取变量并设置到环境变量 假设有一个配置文件&#xff08;如env_config.txt&#xf…

WebSocket 实现数据实时推送原理

WebSocket 实现数据实时推送的核心机制在于其全双工通信能力和持久的连接特性。以下是其工作原理的详细步骤&#xff1a; 1. 握手阶段&#xff08;HTTP 升级协议&#xff09; 客户端发起请求&#xff1a;通过发送一个带有特殊头部的 HTTP 请求&#xff0c;请求协议升级。 GET …

Linux操作系统学习之---进程状态

目录 明确进程的概念: Linux下的进程状态: 虚拟终端的概念: 见一见现象: 用途之一 : 结合指令来监控进程的状态: 和进程强相关的系统调用函数接口: getpid()和getppid(): fork(): fork函数创建子进程的分流逻辑: 进程之间具有独立性: 进程中存在的写时拷贝: 见一见进程状态…

何小鹏在得意的笑

"小鹏汽车率先迈出了造车新势力出海一大步" 作者 | 魏强 编辑 | 卢旭成 4月15日&#xff0c;小鹏汽车在香港举行小鹏全球热爱之夜和2025首款全球旗舰小鹏X9上市发布会。 当小鹏汽车创始人何小鹏把香车X9交付给香港首批车主的时候&#xff0c;脸上露出经典的笑脸。…

@Autowird 注解与存在多个相同类型对象的解方案

现有一个 Student 类&#xff0c;里面有两个属性&#xff0c;分别为 name 和 id&#xff1b;有一个 StuService 类&#xff0c;里面有两个方法&#xff0c;返回值均为类型为 Student 的对象&#xff1b;还有一个 StuController 类&#xff0c;里面有一个 Student 类型的属性&am…

黑马商城项目(三)微服务

一、单体架构 测试高并发软件 二、微服务 三、SpringCloud 四、微服务拆分 黑马商城模块&#xff1a; 服务拆分原则&#xff1a; 拆分服务&#xff1a; 独立project&#xff1a; maven聚合&#xff1a; 拆分案例&#xff1a; 远程调用&#xff1a; package com.hmall.cart.…

PyTorch:学习 CIFAR-10 分类

&#x1f50d; 开始你的图像分类之旅&#xff1a;一步一步学习 CIFAR-10 分类 图像分类是计算机视觉中最基础的任务之一&#xff0c;如果你是初学者&#xff0c;那么以 CIFAR-10 为训练场是一个不错的选择。本文一步一步带你从零开始&#xff0c;学习如何用深度学习模型实现图…

3.学习笔记--Spring-AOP总结(p39)-Spring事务简介(P40)-Spring事务角色(P41)-Spring事务属性(P42)

1.AOP总结&#xff1a;面向切面编程&#xff0c;在不惊动原始基础上为方法进行功能增强。 2.AOP核心概念&#xff1a; &#xff08;1&#xff09;代理&#xff1a;SpringAOP的核心是采用代理模式 &#xff08;2&#xff09;连接点&#xff1a;在SpringAOP中&#xff0c;理解为任…

数据库-day06

一、实验名称和性质 分类查询 验证 综合 设计 二、实验目的 1&#xff0e;掌握数据查询的Group by &#xff1b; 2&#xff0e; 掌握聚集函数的使用方法。 三、实验的软硬件环境要求 硬件环境要求&#xff1a; PC机(单机) 使用的软件名称、版本号以及模块&#xff1a; …

看门狗定时器(WDT)超时

一、问题 Arduino 程序使用<Ticker.h>包时&#xff0c;使用不当情况下&#xff0c;会导致“看门狗WDT超时” 1.1问题控制台报错 在串口监视器显示 --------------- CUT HERE FOR EXCEPTION DECODER ---------------Soft WDT resetException (4): epc10x402077cb epc2…

AI在多Agent协同领域的核心概念、技术方法、应用场景及挑战 的详细解析

以下是 AI在多Agent协同领域的核心概念、技术方法、应用场景及挑战 的详细解析&#xff1a; 1. 多Agent协同的定义与核心目标 多Agent系统&#xff08;MAS, Multi-Agent System&#xff09;&#xff1a; 由多个独立或协作的智能体&#xff08;Agent&#xff09;组成&#xff…

Wireshark TS | 异常 ACK 数据包处理

问题背景 来自于学习群里群友讨论的一个数据包跟踪文件&#xff0c;在其中涉及到两处数据包异常现象&#xff0c;而产生这些现象的实际原因是数据包乱序。由于这两处数据包异常&#xff0c;都有点特别&#xff0c;本篇也就其中一个异常现象单独展开说明。 问题信息 数据包跟…

【React】项目的搭建

create-react-app 搭建vite 搭建相关下载 在Vue中搭建项目的步骤&#xff1a;1.首先安装脚手架的环境&#xff0c;2.通过脚手架的指令创建项目 在React中有两种方式去搭建项目&#xff1a;1.和Vue一样&#xff0c;先安装脚手架然后通过脚手架指令搭建&#xff1b;2.npx create-…