【机器学习300问】16、逻辑回归模型实现分类的原理?
在上一篇文章中,我初步介绍了什么是逻辑回归模型,从它能解决什么问题开始介绍,并讲到了它长什么样子的。如果有需要的小伙伴可以回顾一下,链接我放在下面啦:
【机器学习300问】15、什么是逻辑回归模型?
在这篇文章中,我们深入了解一下逻辑回归模型是怎么实现分类的?我想我可以分成三个层次,层层递进的为大家介绍。
一、找到决策边界便能轻松分类
我想试着从直观的图表入手,反过来推我们需要做些什么才能实现如图的效果。
(1)什么是决策边界?

大家看到这图的一瞬间,就能想到画一条从左上到右下的线便可以将圈圈数据和叉叉数据分开,这一条线就决策边界。

用更加通用的语句定义一下,在逻辑回归模型中,我们通常通过设置一个阈值,比如0.5,来决定预测的分类。当预测的概率大于等于这个阈值时,我们将其分类为正类,反之则分类为负类。这个阈值就形成了一个决策边界。
(2)这个决策边界和逻辑回归模型什么关系?
首先复习一下逻辑回归模型长什么样子的,它是一个函数由两个部分组成,样子如下:
长相有点吓人!我来解释一下:
| 式子 | 解释 |
| 这是逻辑回归模型的预测值,也可以理解为 | |
| 这是sigmoid函数,只不过在上一篇文章中写作 | |
| P表示给定特征 x 的条件下,样本属于正类y=1的概率 |
可以看到,逻辑回归模型本质是一个多项式套在sigmoid函数里面,那么我们就可以从sigmoid函数图像中看出些许端倪。

我们以sigmoid函数y=0.5为一个阈值,这里的y只是一个符号,为了与上文统一也可以写成=0.5或者g=0.5都是一个意思,当y>0.5的时候我们认为预测结果是正类,当y<0.5的时候我们认为预测结果是负类。
当y=0.5的时候z=0,又因为,所以决策边界就出来了!即:
我们还是拿这个图举例说明,在图中z=0的方程可以写作 ,这里只有两个特征量所以就直接写而不是向量形式书写了。

从图中可以看出,能让z=0的线有很多条,我随便画了一条,这条线的 你能感觉到w和b的不同对应了不同z决策边界,而能让训练集分成合适的两个部分的决策边界不止一条。在这里我是凭借经验或者说直觉找的一对w和b确定了一个决策边界。
(3)当样本无法用直线来区分时

决策边界的形状取决于特征和参数的选择。如果引入的特征是一组线性的,那么得到的决策边界是线性的;如果引入的特征是非线性的,那么得到的决策边界是非线性的。
比如这个图中,就可以用 来做决策边界,令z=0就可以得到
画出图像来的话就是一个圆,如下图

二、如何找到决策边界?
决策边界的作用是尽可能完美的把正类和负类分开,那么我们就可以用分的准不准作为评判标准。回到逻辑回归模型所解决的问题——二分类问题,真实值y只有可能是0或者1。那么说明我的预测值也只可能是0或者1。
(1)逻辑回归模型的损失函数
在线性回归模型中,介绍了一种叫做MSE均方误差的代价函数,来评价预测值与真实值之间的差距,进而判断模型是否尽可能的拟合数据。
在逻辑回归模型中,也存在一种Loss损失函数,来判断预测值与真实值之间的差距。它长这样:
这里暂不讨论它为什么是长这样,只是简单说一下,长这样有一个好处,那就是这是一个凸函数,没有局部最小值,可以很方便的使用梯度下降算法来求得最佳的w和b参数,进而确定决策边界,当决策边界定了就意味着逻辑回归模型也训练完成了。
另外补充说,上面这种形式的损失函数叫做交叉熵误差,它有如下的特点:
- 当模型预测的概率分布与真实分布完全一致时,交叉熵损失取得最小值0,当预测结果完全错误时,交叉熵误差趋近于无穷大。取值范围[0, 1]
- 它惩罚了模型预测概率远离真实概率的程度,鼓励模型学习更加准确的概率分布。
- 便于通过梯度下降等优化算法更新模型参数。
(2)从图像中简单理解损失函数

写的太复杂了我还是写成
。这样构建的
函数的特点是:当实际的
且预测值
也为 1 时误差为 0,当
但
不为1时误差随着
变小而变大;当实际的
且
也为 0 时误差为 0,当
但
不为 0时误差随着
的变大而变大。
三、逻辑回归模型中的梯度下降算法
(1)梯度下降算法的目的
梯度下降算法在逻辑回归中的目的是为了找到决策边界,找决策边界其实就是来确定w和b的值,故梯度下降算法就是为了寻找最佳的w和b。
在逻辑回归模型中的梯度下降算法的目标函数是损失函数J,那么梯度下降算法具体目标就变成了找到损失函数J的最小值,在上面我们介绍的是针对某一个点的损失,现在我们计算所有点的损失,也就是整体损失后得到损失函数的终极形态:
先将损失函数写成一行
在计算整体损失
(2)梯度下降算法的步骤
重复如下步骤即可

相关文章:
【机器学习300问】16、逻辑回归模型实现分类的原理?
在上一篇文章中,我初步介绍了什么是逻辑回归模型,从它能解决什么问题开始介绍,并讲到了它长什么样子的。如果有需要的小伙伴可以回顾一下,链接我放在下面啦: 【机器学习300问】15、什么是…...
OPC【4】:物理包
概述 OPC遵循zip标准,因此可以使用python标准库zipfile对docx格式的物理文件进行读写操作。在OPC中,物理包与抽象包是一对相对的概念,后续可以看到抽象包内的内容是将物理包内的信息进行编排形成地。简单点理解,物理包的作用在于…...
关于 Go 协同程序(Coroutines 协程)、Go 汇编及一些注意事项。
参考: Go 汇编函数 - Go 语言高级编程 Go 嵌套汇编 - 掘金 (juejin.cn) 前言: Golang 适用 Go-Runtime(Go 运行时,嵌入在被编译的PE可执行文件之中)来管理调度协同程式的运行。 Go 语言没有多线程(MT&a…...
深入剖析BaseMapperPlus扩展接口及其在MyBatis-Plus中的实践价值
前言 BaseMapperPlus并非MyBatis-Plus(MP)官方提供的标准接口,而是社区开发者基于MP的BaseMapper接口进行二次封装和增强后创建的一个自定义接口。这个概念可能因不同项目或个人实践而有所差异,但其核心思想是为了解决特定场景下…...
Linux之安装配置VCentOS7+换源
目录 一、安装 二、配置 三、安装工具XSHELL 3.1 使用XSHELL连接Linux 四、换源 前言 首先需要安装VMware虚拟机,在虚拟机里进行安装Linux 简介 Linux,一般指GNU/Linux(单独的Linux内核并不可直接使用,一般搭配GNU套件&#…...
[极客大挑战 2019]LoveSQL1
万能密码测试,发现注入点 注意这里#要使用url编码才能正常注入 测试列数,得三列 查看table,一个是geekuser另一个是l0ve1ysq1 查看column,有id,username,password,全部打印出来,…...
网络安全的介绍
1.什么是网络安全 网络安全是一门关注保护计算机系统、网络基础设施和数据免受未经授权访问、破坏或窃取的学科。随着数字化时代的发展,网络安全变得尤为重要,因为大量的个人信息、商业机密和政府数据都储存在电子设备和云端系统中。以下是网络安全的概…...
django邮件通知功能-
需求: 1:下单人员下订单时需要向组长和投流手发送邮件通知 2:为何使用邮件通知功能?因为没钱去开通短信通知功能 设计 1:给用户信息表添加2个字段 第一个字段为:是否开通邮件通知的布尔值 第二个字段为: 用…...
C++ 类定义
C 类定义 定义一个类需要使用关键字 class,然后指定类的名称,并类的主体是包含在一对花括号中,主体包含类的成员变量和成员函数。 定义一个类,本质上是定义一个数据类型的蓝图,它定义了类的对象包括了什么࿰…...
IntelliJ IDE 插件开发 | (五)VFS 与编辑器
系列文章 IntelliJ IDE 插件开发 |(一)快速入门IntelliJ IDE 插件开发 |(二)UI 界面与数据持久化IntelliJ IDE 插件开发 |(三)消息通知与事件监听IntelliJ IDE 插件开发 |(四)来查收…...
金融OCR领域实习日志(一)
一、OCR基础 任务要求: 工作原理 OCR(Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相)检查纸上打印的字符,经过检测暗、亮的模式肯定其形状,而后用…...
CC++编译和链接介绍
介绍 C语言的编译和链接是将源代码转换为可执行文件的两个关键步骤。以下是详细的流程: 编译过程(Compilation) 预处理(Preprocessing): 编译器首先对源代码进行预处理,这个阶段处理#include包…...
Element-UI中的el-upload插件上传文件action和headers参数
官网给的例子action都是绝对地址,我现在需要上传到自己后台的地址,只有一个路由地址/task/upload 根据 config/index.js配置,那么action要写成/api/task/upload,另外也可以传入函数来返回地址:action"uploadUrl()"。 …...
在IntelliJ IDEA中通过Spring Boot集成达梦数据库:从入门到精通
目录 博客前言 一.创建springboot项目 新建项目 选择创建类型编辑 测试 二.集成达梦数据库 添加达梦数据库部分依赖 添加数据库驱动包 配置数据库连接信息 编写测试代码 验证连接是否成功 博客前言 随着数字化时代的到来,数据库在应用程序中的地位越来…...
docker相关
下载Ubuntu18.04文件64位(32位安装不了MySQL) https://old-releases.ubuntu.com/releases/18.04.4/?_ga2.44113060.1243545826.1617173008-2055924693.1608557140 Linux ubuntu16.04打开控制台:到桌面,可以按快捷键ctrlaltt 查…...
生产力工具|卸载并重装Anaconda3
一、Anaconda3卸载 (一)官方方案一(Uninstall-Anaconda3-不能删除配置文件) 官方推荐的方案是两种,一种是直接在Anaconda的安装路径下,双击: (可以在搜索栏或者使用everything里面搜…...
大模型学习与实践笔记(十二)
使用RAG方式,构建opencv专业资料构建专业知识库,并搭建专业问答助手,并将模型部署到openxlab 平台 代码仓库:https://github.com/AllYoung/LLM4opencv 1:创建代码仓库 在 GitHub 中创建存放应用代码的仓库ÿ…...
Vulnhub靶机:FunBox 5
一、介绍 运行环境:Virtualbox 攻击机:kali(10.0.2.15) 靶机:FunBox 5(10.0.2.30) 目标:获取靶机root权限和flag 靶机下载地址:https://www.vulnhub.com/entry/funb…...
性能优化(CPU优化技术)-NEON指令介绍
「发表于知乎专栏《移动端算法优化》」 本文主要介绍了 NEON 指令相关的知识,首先通过讲解 arm 指令集的分类,NEON寄存器的类型,树立基本概念。然后进一步梳理了 NEON 汇编以及 intrinsics 指令的格式。最后结合指令的分类,使用例…...
【极数系列】Flink环境搭建(02)
【极数系列】Flink环境搭建(02) 引言 1.linux 直接在linux上使用jdk11flink1.18.0版本部署 2.docker 使用容器部署比较方便,一键启动停止,方便参数调整 3.windows 搭建Flink 1.18.0版本需要使用Cygwin或wsl工具模拟unix环境…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...
IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...
【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
【力扣数据库知识手册笔记】索引
索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
