逻辑回归 (Logistic Regression)

news2025/5/19 22:20:56

文章目录

  • 逻辑回归 (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.coloradmin.cn/o/2337473.html

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

相关文章

燕山大学计算机网络之Java实现TCP数据包结构设计与收发

觉得博主写的好,给博主点点免费的关注吧! 目录 摘要.................................................................................................................... 4 前言.............................................................…

JavaEE——线程安全

目录 前言1.线程安全的定义2.线程安全问题产生的原因2.1 多个线程修改一个变量2.2 修改操作不是原子的2.3 内存可见性引起的线程安全问题 3.解决线程安全问题的方法3.1 通过synchronized关键字加锁3.2 使用volatile关键字 总结 前言 在使用多线程的时候,难免会出现…

[redis进阶一]redis的持久化(2)AOF篇章

目录 一 为什么有了RDB持久化机制还要有AOF呢 板书介绍具体原因: ​编辑二 详细讲解AOF机制 (1)AOF的基本使用 1)板书如下 2)开启AOF机制: 3) AOF工作流程 (2)AOF是否会影响到redis性能 ​编辑 (3)AOF缓冲区刷新策略 (4)AOF的重写机制 板书如下: 为什么要有这个重写机…

【Linux我做主】探秘gcc/g++和动静态库

TOC Linux编译器gcc/g的使用 github地址 有梦想的电信狗 前言 在软件开发的世界中,编译器如同匠人的工具,将人类可读的代码转化为机器执行的指令。 对于Linux开发者而言,gcc和g是构建C/C程序的核心工具链,掌握它们的原理和使…

Vue3中发送请求时,如何解决重复请求发送问题?

文章目录 前言一、问题演示二、使用步骤1.One组件2.Two组件封装工具函数处理请求 总结 前言 在开发过程中,重复请求发送问题可能会导致数据不一致、服务器压力增加或用户操作异常。以下是解决重复请求问题的常见方法和最佳实践: 一、问题演示 我们看着…

观察者模式:从博客订阅到消息队列的解耦实践

观察者模式:从博客订阅到消息队列的解耦实践 一、模式核心:用事件驱动实现对象间松耦合 在新闻 APP 中,当热点事件发生时需要实时通知所有订阅用户;在电商系统中,库存变化需触发价格监控模块重新计算。这类场景的核心…

ReportLab 导出 PDF(页面布局)

ReportLab 导出 PDF(文档创建) ReportLab 导出 PDF(页面布局) ReportLab 导出 PDF(图文表格) PLATYPUS - 页面布局和排版 1. 设计目标2. 开始3. Flowables3.1. Flowable.draw()3.2. Flowable.drawOn(canvas,x,y)3.3. F…

【CVE-2024-10929】ARM CPU漏洞安全通告

安全之安全(security)博客目录导读 目录 一、概述 二、CVE详情 三、受影响产品 四、建议措施 五、致谢 六、版本历史 一、概述 在部分基于Arm架构的CPU中发现了一个潜在安全问题,称为Spectre-BSE(Branch Status Eviction,分支状态驱逐…

OpenCV 图形API(33)图像滤波-----高斯模糊函数gaussianBlur()

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 使用高斯滤波器对图像进行模糊处理。 该函数使用指定的高斯核对源图像进行滤波。输出图像必须与输入图像具有相同的类型和通道数。 cv::gapi::g…

【2025最新版】火鸟门户v8.5系统源码+PC、H5、小程序 +数据化大屏插件

一.介绍 火鸟地方门户系统V8.5源码 系统包含4端: PCH5小程序APP 二.搭建环境 系统环境:CentOS、 运行环境:宝塔 Linux 网站环境:Nginx 1.2.22 MySQL 5.6 PHP-7.4 常见插件:fileinfo ; redis 三.测…

关于 传感器 的详细解析,涵盖定义、分类、工作原理、常见类型、应用领域、技术挑战及未来趋势,结合实例帮助理解其核心概念

以下是关于 传感器 的详细解析,涵盖定义、分类、工作原理、常见类型、应用领域、技术挑战及未来趋势,结合实例帮助理解其核心概念: 一、传感器的定义与核心功能 1. 定义 传感器(Sensor)是一种能够将物理量&#xff…

EtherCAT转ProfiNet边缘计算网关配置优化:汽车制造场景下PLC与机器人协同作业案例

1.行业背景与需求分析 智能汽车焊装车间是汽车制造的核心工艺环节,某德国豪华品牌在其上海MEB工厂新建的焊装车间中,采用西门子S7-1500PLC作为ProfiNet主站,负责整线协调与质量追溯;同时部署KUKAKR1500Titan机器人(Eth…

HTTP协议 --- 超文本传输协议 和 TCP --- 传输控制协议

是基于 TCP 协议的 80 端口的一种 C/S 架构协议。 特点:无状态 --- 数据传输完成后,会断开 TCP 连接,哪怕浏览器还正常运行。 请求报文 --- 方法 响应报文 --- 状态码 是一种面向连接的可靠传输协议 。 面向连接 --- 在传输数据之前&am…

类和对象(下篇)(详解)

【本节目标】 1. 再谈构造函数 2. Static成员 3. 友元 4. 内部类 5. 再次理解封装 1. 再谈构造函数 1.1 构造函数体赋值 在创建对象时&#xff0c;编译器通过调用构造函数&#xff0c;给对象中各个成员变量一个合适的初始值。 #include <iostream> using name…

LeetCode【剑指offer】系列(位运算篇)

剑指offer15.二进制中1的个数 题目链接 题目&#xff1a;编写一个函数&#xff0c;输入是一个无符号整数&#xff08;以二进制串的形式&#xff09;&#xff0c;返回其二进制表达式中数字位数为 ‘1’ 的个数&#xff08;也被称为 汉明重量).&#xff09;。 思路一&#xff…

网络安全领域的AI战略准备:从概念到实践

网络安全领域的AI准备不仅涉及最新工具和技术的应用&#xff0c;更是一项战略必需。许多企业若因目标不明确、数据准备不足或与业务重点脱节而未能有效利用AI技术&#xff0c;可能面临严重后果&#xff0c;包括高级网络威胁数量的激增。 AI准备的核心要素 构建稳健的网络安全…

MacOs下解决远程终端内容复制并到本地粘贴板

常常需要在服务器上捣鼓东西&#xff0c;同时需要将内容复制到本地的需求。 1-内容是在远程终端用vim打开&#xff0c;如何用vim的类似指令达到快速复制到本地呢&#xff1f; 假设待复制的内容&#xff1a; #include <iostream> #include <cstring> using names…

基于PAI+专属网关+私网连接:构建全链路 Deepseek 云上私有化部署与模型调用架构

DeepSeek - R1 是由深度求索公司推出的首款推理模型&#xff0c;该模型在数学、代码和推理任务上的表现优异&#xff0c;市场反馈火爆。在大模型技术商业化进程中&#xff0c;企业级用户普遍面临四大核心挑战&#xff1a; 算力投入成本高昂&#xff1a;构建千亿参数级模型的训…

【cocos creator 3.x】cocos creator2.x项目升级3.x项目改动点

1、基本改动 基本改动&#xff1a;去掉了cc.&#xff0c;改成在顶部添加导入 项目升级时候直接将cc.去掉&#xff0c;根据提示添加引用 node只保留position,scale,rotation,layer 其余属性如opacity&#xff0c;如果需要使用需要在节点手动添加UIOpacity组件 3d层和ui层分开…

List基础与难度题

1. 向 ArrayList 中添加元素并打印 功能描述&#xff1a; 程序创建一个空的 ArrayList 集合&#xff0c;用于存储字符串类型的元素。向该 ArrayList 中依次添加指定的字符串元素。使用增强型 for 循环遍历 ArrayList 中的所有元素&#xff0c;并将每个元素打印输出到控制台。 …