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

绘制线性可分支持向量机决策边界图 代码解析

### 绘制线性可分支持向量机决策边界图
def plot_classifer(model, X, y):# 超参数边界x_min = -7x_max = 12y_min = -12y_max = -1step = 0.05# meshgridxx, yy = np.meshgrid(np.arange(x_min, x_max, step),np.arange(y_min, y_max, step))# 模型预测z = model.predict(np.c_[xx.ravel(), yy.ravel()])# 定义color mapcmap_light = ListedColormap(['#FFAAAA', '#AAFFAA'])cmap_bold = ListedColormap(['#FF0000', '#003300'])z = z.reshape(xx.shape)plt.figure(figsize=(8, 5), dpi=96)plt.pcolormesh(xx, yy, z, cmap=cmap_light)plt.scatter(X[:, 0], X[:, 1], c=y, cmap=cmap_bold)plt.show()

该代码用于绘制线性可分支持向量机(SVM)的决策边界图。通过在二维坐标系中可视化支持向量机的分类结果,我们可以清楚地看到决策边界是如何将不同类别的样本分开的。接下来,将详细解释代码的各个部分以及它是如何工作的。

代码详细解释

(1) 定义决策边界的绘制范围
x_min = -7
x_max = 12
y_min = -12
y_max = -1
step = 0.05

这些变量定义了绘制决策边界的坐标范围:

  • x_minx_max:x 轴的最小和最大值,表示横向坐标的范围。
  • y_miny_max:y 轴的最小和最大值,表示纵向坐标的范围。
  • step:绘制网格的步长,决定了网格的密度,越小的步长会导致决策边界更加细致。
(2) 创建网格点
xx, yy = np.meshgrid(np.arange(x_min, x_max, step),np.arange(y_min, y_max, step))
  • np.meshgrid():该函数生成了一个二维的网格,其中每个点代表输入空间的一个坐标点。通过定义网格,我们可以对整个输入空间的每个点进行分类。
  • xxyy:分别是网格的 x 和 y 坐标。

例如,如果步长为 0.05 且范围为 -7 到 12,网格的 x 坐标将是从 -7 到 12 间隔 0.05 的所有点,y 坐标将是从 -12 到 -1 间隔 0.05 的所有点。

(3) 对网格中的点进行预测
z = model.predict(np.c_[xx.ravel(), yy.ravel()])
  • np.c_:将 xxyy 坐标点展平(通过 ravel() 函数),并将这些点组合为一对对的坐标点输入到模型中。
  • model.predict():使用训练好的 SVM 模型对网格中的每一个点进行预测,判断它属于哪个类别。
(4) 定义颜色映射
cmap_light = ListedColormap(['#FFAAAA', '#AAFFAA'])
cmap_bold = ListedColormap(['#FF0000', '#003300'])
  • cmap_light:定义浅色的颜色映射,用于背景显示不同类别区域。
  • cmap_bold:定义深色的颜色映射,用于显示训练数据点的颜色。
(5) 绘制决策边界和样本点
z = z.reshape(xx.shape)
plt.figure(figsize=(8, 5), dpi=96)
plt.pcolormesh(xx, yy, z, cmap=cmap_light)
plt.scatter(X[:, 0], X[:, 1], c=y, cmap=cmap_bold)
plt.show()
  • z.reshape(xx.shape):将预测结果 z 重新调整为与 xx 的形状相同,以便后续的可视化。
  • plt.pcolormesh():使用 pcolormesh() 函数绘制背景颜色,表示每个区域的类别。
  • plt.scatter():用 scatter() 函数绘制数据点,用深色显示训练数据。
  • plt.show():显示绘制的图像。

代码作用总结

这段代码通过以下步骤绘制了线性可分支持向量机的决策边界:

  1. 定义网格:通过 np.meshgrid() 函数创建输入空间的网格点。
  2. 模型预测:使用 model.predict() 函数对网格中的每个点进行预测,确定该点的类别。
  3. 绘制决策边界:使用 plt.pcolormesh() 函数绘制每个区域的背景颜色,代表不同类别的区域。
  4. 绘制样本点:使用 plt.scatter() 函数绘制训练样本,显示真实的分类结果。

使用示例

假设你已经训练了一个 SVM 模型,并且有一些二维数据,那么你可以这样调用函数 plot_classifer()

# 假设我们有训练好的 SVM 模型和数据
svm_model = Hard_Margin_SVM()
svm_model.fit(X, y)# 绘制决策边界
plot_classifer(svm_model, X, y)

总结

通过这段代码,你可以直观地看到 SVM 如何将样本分为两个类别,并展示它的分类边界。

相关文章:

绘制线性可分支持向量机决策边界图 代码解析

### 绘制线性可分支持向量机决策边界图 def plot_classifer(model, X, y):# 超参数边界x_min -7x_max 12y_min -12y_max -1step 0.05# meshgridxx, yy np.meshgrid(np.arange(x_min, x_max, step),np.arange(y_min, y_max, step))# 模型预测z model.predict(np.c_[xx.ra…...

No.23 笔记 | WEB安全 - 任意文件漏洞 part 5

本文全面且深入地探讨了文件上传漏洞相关知识。从基础概念出发,清晰地阐述了文件上传漏洞的定义及其产生的本质原因,同时列出了该漏洞成立的必要条件。详细说明了文件上传漏洞可能对服务器控制权、网站安全以及业务运营带来的严重危害。 文中还深入解析了…...

EasyPlayer.js网页播放器,支持FLV、HLS、WebSocket、WebRTC、H.264/H.265、MP4、ts各种音视频流播放

EasyPlayer.js功能: 1、支持解码H.264视频(Baseline, Main, High Profile全支持,支持解码B帧视频) 2、支持解码H.265视频(flv id 12) 3、支持解码AAC音频(LC,HE,HEv2 Profile全支持) 4、支持解码MP3音频以及Speex音频格式 5、可…...

WPF数据绑定的五大模式

WPF(Windows Presentation Foundation)是微软推出的一种用于构建Windows用户界面的UI框架。它支持数据绑定,允许开发者将UI元素与数据源绑定,从而实现数据和界面的自动同步。WPF数据绑定有几种不同的模式, 以下是五种…...

从零到一:大学新生编程入门攻略与成长指南

文章目录 每日一句正能量前言编程语言选择:为大学新生量身定制Python:简单而强大的选择JavaScript:Web开发的基石Java:面向对象的经典C#:微软的全能选手 学习资源推荐:编程学习的宝藏在线课程教程和文档书籍…...

详细分析Pytorch中的transpose基本知识(附Demo)| 对比 permute

目录 前言1. 基本知识2. Demo 前言 原先的permute推荐阅读:详细分析Pytorch中的permute基本知识(附Demo) 1. 基本知识 transpose 是 PyTorch 中用于交换张量维度的函数,特别是用于二维张量(矩阵)的转置操…...

初识WebGL

思路&#xff1a; 构建<canvas>画布节点&#xff0c;获取其的实例。使用getWebGLContext() 拿到画布上下文。拿到上下文用clearColor() 设置背景颜色。最后清空canvas画布,是为了清除颜色缓冲区。 html结构&#xff1a; <!DOCTYPE html> <html lang"en&…...

【力扣】Go语言回溯算法详细实现与方法论提炼

文章目录 一、引言二、回溯算法的核心概念三、组合问题1. LeetCode 77. 组合2. LeetCode 216. 组合总和III3. LeetCode 17. 电话号码的字母组合4. LeetCode 39. 组合总和5. LeetCode 40. 组合总和 II小结 四、分割问题6. LeetCode 131. 分割回文串7. LeetCode 93. 复原IP地址小…...

「C/C++」C/C++ 之 第三方库使用规范

✨博客主页何曾参静谧的博客&#x1f4cc;文章专栏「C/C」C/C程序设计&#x1f4da;全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasoli…...

六、元素应用CSS的习题

题目一&#xff1a; 使用CSS样式对页面元素加以修饰&#xff0c;制作“ 旅游攻略 ”网站。如下图所示 运行效果&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8" /><title>旅游攻略</title><…...

正式入驻!上海斯歌BPM PaaS管理软件等产品入选华为云联营商品

近日&#xff0c;上海斯歌旗下BPM PaaS管理软件&#xff08;NBS&#xff09;等多款产品入选华为云云商店联营商品&#xff0c;上海斯歌正式成为华为云联营商品合作伙伴。用户登录华为云云商店即可采购上海斯歌的BPM PaaS产品及配套服务。通过联营模式&#xff0c;双方合作能够深…...

使用 Axios 上传大文件分片上传

背景 在上传大文件时&#xff0c;分片上传是一种常见且有效的策略。由于大文件在上传过程中可能会遇到内存溢出、网络不稳定等问题&#xff0c;分片上传可以显著提高上传的可靠性和效率。通过将大文件分割成多个小分片&#xff0c;不仅可以减少单次上传的数据量&#xff0c;降…...

Nginx+Lua脚本+Redis 实现自动封禁访问频率过高IP

1 、安装OpenResty 安装使用 OpenResty&#xff0c;这是一个集成了各种 Lua 模块的 Nginx 服务器&#xff0c;是一个以Nginx为核心同时包含很多第三方模块的Web应用服务器&#xff0c;使用Nginx的同时又能使用lua等模块实现复杂的控制。 &#xff08;1&#xff09;安装编译工具…...

PART 1 数据挖掘概论 — 数据挖掘方法论

目录 数据库知识发掘步骤 数据挖掘技术的产业标准 CRISP-DM SEMMA 数据库知识发掘步骤 数据库知识发掘(Knowledge Discovery in Database,KDD)是从数据库中的大量数据中发现不明显、之前未知、可能有用的知识。 知识发掘流程(Knowledge Discovery Process)包括属性选择…...

Centos安装ffmpeg的方法

推荐第一个,不要自己编译安装,太难了,坑多。 在 CentOS 上安装 FFmpeg 有几种方法,以下是两种常见的方法: ### 方法一:使用 RPM Fusion 仓库安装 1. **启用 RPM Fusion 仓库**: RPM Fusion 是一个第三方仓库,提供了许多 CentOS 官方仓库中没有的软件包。 ```bash…...

理解SQL中通配符的使用

前言 SQL 是一种标准化的结构化查询语言&#xff0c;涉及结构化查询时&#xff0c;高效地检索数据至关重要。而通配符是SQL中模式匹配的有效的方法。使用通配符可以更轻松地检索到所需的确切数据。通配符允许我们定义多功能查询条件。本文将 介绍SQL通配符的基础知识及用法。 …...

SpringBoot篇(简化操作的原理)

目录 一、代码位置 二、统一版本管理&#xff08;parent&#xff09; 三、提供 starter简化 Maven 配置 四、自动配置 Spring&#xff08;引导类&#xff09; 五、嵌入式 servlet 容器 一、代码位置 二、统一版本管理&#xff08;parent&#xff09; SpringBoot项目都会继…...

Cesium的模型(ModelVS)顶点着色器浅析

来自glTF和3D Tiles的模型会走ModelVS.glsl。这个文件不单独是把模型顶点转换为屏幕坐标&#xff0c;还包含了丰富的处理过程。 Cesium是根据定义的Define判断某个行为是否需要被执行&#xff0c;比如#define HAS_SILHOUETTE&#xff0c;说明需要计算模型外轮廓线。 Cesium的…...

机器人领域中的scaling law:通过复现斯坦福机器人UMI——探讨数据规模化定律(含UMI的复现关键)

前言 在24年10.26/10.27两天&#xff0c;我司七月在线举办的七月大模型机器人线下营时&#xff0c;我们带着大家一步步复现UMI&#xff0c;比如把杯子摆到杯盘上(其中1-2位学员朋友还亲自自身成功做到该任务) 此外&#xff0c;我还特地邀请了针对UMI做了改进工作的fastumi作者…...

C++之多态的深度剖析

目录 前言 1.多态的概念 2.多态的定义及实现 2.1多态的构成条件 2.1.1重要条件 2.1.2 虚函数 2.1.3 虚函数的重写/覆盖 2.1.4 选择题 2.1.5 虚函数其他知识 协变&#xff08;了解&#xff09; 析构函数的重写 override 和 final关键字 3. 重载&#xff0c;重写&…...

nli-distilroberta-base效果展示:Contradiction类样本的Attention权重可视化分析

nli-distilroberta-base效果展示&#xff1a;Contradiction类样本的Attention权重可视化分析 1. 项目概述 nli-distilroberta-base是基于DistilRoBERTa模型的自然语言推理(NLI)服务&#xff0c;专门用于分析句子对之间的逻辑关系。这个轻量级模型能够高效判断两个句子之间的三…...

脑波货币化:公司用我的焦虑情绪炒期货

一、软件测试工程师&#xff1a;焦虑的“完美生产者”在持续集成、敏捷交付的现代开发流程中&#xff0c;软件测试从业者长期处于多重压力夹击之下&#xff1a;精确性高压&#xff1a;对缺陷零容忍的行业标准&#xff0c;使每一次测试执行如同走钢丝技术迭代焦虑&#xff1a;AI…...

【windows】VirtualBox网络配置及实战-Host Only 仅主机模式

1.概述 仅 主 机 网 络 &#xff1a; 用 来 创 建 一 个 包 含 主 日 一 组 虚拟机的 网 络 &#xff0c; 而 不 需 要 主 机 的 物 理 网 络 接 口 &#xff0e;相反 &#xff0c;在虚拟机上创建了一个类似于环回接口的虚拟网络接口。提 供 虚 似 机 和 主 机 之 间 的 连 接 …...

终极WZ文件编辑器:从地图设计到资源定制的完整工作流

终极WZ文件编辑器&#xff1a;从地图设计到资源定制的完整工作流 【免费下载链接】Harepacker-resurrected All in one .wz file/map editor for MapleStory game files 项目地址: https://gitcode.com/gh_mirrors/ha/Harepacker-resurrected Harepacker-resurrected是一…...

避开版本坑!用DINOv2和MMSegmentation在PASCAL VOC 2012上跑通语义分割(附完整环境配置)

避开版本坑&#xff01;用DINOv2和MMSegmentation在PASCAL VOC 2012上跑通语义分割&#xff08;附完整环境配置&#xff09; 语义分割作为计算机视觉领域的核心任务之一&#xff0c;其技术演进始终与深度学习框架的生态紧密相连。当Meta开源的DINOv2遇上OpenMMLab的MMSegmentat…...

免费解锁付费内容:Bypass Paywalls Clean Chrome扩展终极指南

免费解锁付费内容&#xff1a;Bypass Paywalls Clean Chrome扩展终极指南 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在数字阅读时代&#xff0c;你是否经常遇到想阅读的文章被付…...

专业流媒体视频下载工具技术解析与使用指南

专业流媒体视频下载工具技术解析与使用指南 价值主张&#xff1a;高效解决流媒体内容本地化需求 在数字内容消费日益普及的今天&#xff0c;用户对在线视频资源的本地保存需求持续增长。m3u8-downloader作为一款专业的流媒体下载工具&#xff0c;专注于解决m3u8格式视频的高效…...

PP-DocLayoutV3快速调用:10行Python代码实现文档解析

PP-DocLayoutV3快速调用&#xff1a;10行Python代码实现文档解析 你是不是经常遇到一堆扫描的PDF或者图片文档&#xff0c;想快速提取里面的文字、表格和图片&#xff0c;却不知道从何下手&#xff1f;手动整理不仅费时费力&#xff0c;还容易出错。今天&#xff0c;我就来分享…...

TikTok爆火:C语言代码让电脑无硬件发无线电,靠谱吗?

一、刷爆TikTok的技术神操作&#xff0c;无硬件也能发无线电&#xff1f; 在2026年3月17日这天&#xff0c;有一条C语言创意短视频火爆了TikTok&#xff0c;在当日&#xff0c;它获得了10万以上的播放量&#xff0c;还有5万以上个点赞之举&#xff0c;成功登上了当日C语言创意应…...

EVA-02在社交媒体分析中的应用:舆情摘要与情感倾向判断

EVA-02在社交媒体分析中的应用&#xff1a;舆情摘要与情感倾向判断 最近跟一个做品牌营销的朋友聊天&#xff0c;他正为每天要处理海量的社交媒体评论发愁。团队几个人盯着屏幕&#xff0c;手动翻看、记录、总结&#xff0c;不仅效率低&#xff0c;还容易漏掉关键信息。他问我…...