SVM直观理解

https://tangshusen.me/2018/10/27/SVM/

https://www.bilibili.com/video/BV16T4y1y7qj/?spm_id_from=333.337.search-card.all.click&vd_source=8272bd48fee17396a4a1746c256ab0ae

SVM是什么? 先来看看维基百科上对SVM的定义:

支持向量机(英语:support vector machine,常简称为SVM,又名支持向量网络)是在分类与回归分析中分析数据的监督式学习模型与相关的学习算法。给定一组训练实例,每个训练实例被标记为属于两个类别中的一个或另一个,SVM训练算法创建一个将新的实例分配给两个类别之一的模型,使其成为非概率二元线性分类器。SVM模型是将实例表示为空间中的点,这样映射就使得单独类别的实例被尽可能宽的明显的间隔分开。然后,将新的实例映射到同一空间,并基于它们落在间隔的哪一侧来预测所属类别。

如果从未接触SVM的话,维基的这一大段解释肯定会让你一头雾水。简单点讲,SVM就是一种二类分类模型,他的基本模型是的定义在特征空间上的间隔最大的线性分类器,SVM的学习策略就是间隔最大化。

我们先来看看下面这个图:

img

图1.1

图中有分别属于两类的一些二维数据点和三条直线。如果三条直线分别代表三个分类器的话,请问哪一个分类器比较好?

我们凭直观感受应该觉得答案是H3。首先H1不能把类别分开,这个分类器肯定是不行的;H2可以,但分割线与最近的数据点只有很小的间隔,如果测试数据有一些噪声的话可能就会被H2错误分类(即对噪声敏感、泛化能力弱)。H3以较大间隔将它们分开,这样就能容忍测试数据的一些噪声而正确分类,是一个泛化能力不错的分类器。

对于支持向量机来说,数据点若是𝑝维向量,我们用𝑝−1维的超平面来分开这些点。但是可能有许多超平面可以把数据分类。最佳超平面的一个合理选择就是以最大间隔把两个类分开的超平面。

目标:

因此,SVM选择能够使离超平面最近的数据点的到超平面距离最大的超平面。

image-20240504102823332

以上介绍的SVM只能解决线性可分的问题,为了解决更加复杂的问题,支持向量机学习方法有一些由简至繁的模型:

  • 线性可分SVM

当训练数据线性可分时,通过硬间隔(hard margin,什么是硬、软间隔下面会讲)最大化可以学习得到一个线性分类器,即硬间隔SVM,如上图的的H3。

为了找到最大间隔超平面,我们可以先选择分离两类数据的两个平行超平面,使得它们之间的距离尽可能大。在这两个超平面范围内的区域称为“间隔(margin)”,最大间隔超平面是位于它们正中间的超平面。

image-20240504101749803

image-20240504103122695

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

image-20240504103729846

  • 线性SVM

当训练数据不能线性可分但是可以近似线性可分时,通过软间隔(soft margin)最大化也可以学习到一个线性分类器,即软间隔SVM。

image-20240504103611691

软间隔目的是在间隔距离和错误大小间找到一个平衡

  • 非线性SVM

当训练数据线性不可分时,通过使用核技巧(kernel trick)和软间隔最大化,可以学习到一个非线性SVM。

image-20240504103945039

此时不能通过一条直线将他有效区分

image-20240504104122650

进行升维转换,增加一个维度

image-20240504104237134

  1. 通过维度转换函数将低维数据进行升维
  2. 在高维度下求解SVM模型,找到对应的分隔超平面

但是维度转换函数需要更多的存储数据需求

image-20240504105012392

通过选取合适的核公式,可以不用知道具体的维度转换函数,直接获得数据的高维度差异

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

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

相关文章

JVM笔记1--Java内存区域

1、运行时数据区域 从上图可以看出来,Java虚拟机运行时数据区域整体上可以分成5大块: 1.1、程序计数器 程序计数器是一块较小的内存空间。它可以看做当前线程所执行的字节码的行号指示器。在Java虚拟机的概念模型里,字节码解释器工作时就是…

工厂流水线生产视频素材哪里有?工厂固定机位视频素材从哪找?

在当今这个视觉内容至关重要的数字时代,具备高质量视频素材的资源库是制胜关键。优质视频素材不仅能够显著提升品牌的视觉吸引力,还能帮助你在社交媒体上获得更多的关注和互动。下面介绍的视频素材网站,每一个都能为你的视频项目提供必要的视…

【Python】机器学习之Sklearn基础教程大纲

机器学习之Sklearn基础教程大纲 1. 引言 机器学习简介Scikit-learn(Sklearn)库介绍安装和配置Sklearn 2. 数据预处理 2.1 数据加载与查看 - 加载CSV、Excel等格式的数据- 查看数据的基本信息(如形状、数据类型等)2.2 数据清洗…

深入浅出 BERT

Transformer 用于学习句子中的长距离依赖关系,同时执行序列到序列的建模。 它通过解决可变长度输入、并行化、梯度消失或爆炸、数据规模巨大等问题,比其他模型表现更好。使用的注意力机制是神经架构的一部分,使其能够动态突出显示输入数据的…

Git系列:如何为不同的Git仓库设置不同的配置项?

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

威尔科克森秩和检验 (Wilcoxon rank-sum test)-- 代码实现

⚠申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计3077字,阅读大概需要3分钟 🌈更多学习内容, 欢迎👏关注👀【文末】我的个人微信公众号&#xf…

阿里低代码引擎学习记录

官网 一、关于设计器 1、从设计器入手进行低代码开发 设计器就是我们用拖拉拽的方法,配合少量代码进行页面或者应用开发的在线工具。 阿里官方提供了以下八个不同类型的设计器Demo: 综合场景Demo(各项能力相对完整,使用Fusion…

深度学习之基于Unet肺部CT图像分割项目

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 肺部CT图像分割在医学诊断中占据重要地位,它有助于医生快速、准确地识别和分析肺部病变。…

【数据库原理及应用】期末复习汇总高校期末真题试卷

试卷 一、填空题 1.________是位于用户与操作系统之间的一层数据管理软件。 2.数据库系统的三级模式结构是指________、________、________。 3.数据库系统的三种数据模型是________ 、________、________。 4.若关系中的某一属性组的值能唯一地标识一个元组,则…

2024-第四批C++ 第二轮选拔赛(代码加解析)

第二轮比赛结束了,答案又出来了,充实的一天又过去了...... 一、摘苹果 题目描述 小白同学种植了一颗苹果树,经过他悉心的照料,苹果树终于结果了,结出了很多苹果。 现在树上有 n 个苹果,因为体力有限&…

【matlab基础知识】(二)

i从1加到100 >> s10;for i1:100,s1s1i;end;s1 s1 5050 >> s20;i1;while(i<100),s2s2i;ii1;end;s2 s2 5050 >> sum(1:100) ans 5050 >> s10;m0;while(s1<10000),mm1;s1s1m;end;s1,m s1 10011 m 141 tic, s0;for i1:100000,ss1/2^i1/3…

【kettle006】kettle访问华为openGauss高斯数据库并处理数据至execl文件(已更新)

1.一直以来想写下基于kettle的系列文章&#xff0c;作为较火的数据ETL工具&#xff0c;也是日常项目开发中常用的一款工具&#xff0c;最近刚好挤时间梳理、总结下这块儿的知识体系。 2.熟悉、梳理、总结下华为openGauss高斯数据库相关知识体系 3.欢迎批评指正&#xff0c;跪谢…

在VMware虚拟机ubuntu中运行usb_cam.launch时出现报错出现报错:select timeout

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、运行usb_cam.launch时出现报错出现报错&#xff1a;select timeout1.问题描述2.问题解决 一、运行usb_cam.launch时出现报错出现报错&#xff1a;select timeou…

C 深入指针(2)

目录 1 野指针 1.1 成因 1.2 如何规避野指针 2 assert 断言 2.1 用法 2.2 assert 的优点 2.1 assert 的缺点 3 小注解 3.1 Debug 和 Release 1 野指针 【概念】&#xff1a; 野指针就是指针指向的位置是不可知的&#xff08;随机的、不正确的、没有明确限制的&#…

实习与就业|基于Springboot+vue的实习与就业管理系统(源码+数据库+文档)

实习与就业目录 基于Springbootvue的实习与就业管理系统 一、前言 二、系统设计 三、系统功能设计 管理员登录 就业管理 企业公告信息管理 企业公告类型管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主…

【Linux】学习笔记

文章目录 [toc]第一章&#xff1a;基础篇01|课程介绍02|内容综述03|什么是Linux04|Linux的内核版本及常见发行版内核版本发行版本Red Hat Enterprise LinuxFedoraCentOSDebianUbuntu 05|安装VirtualBox虚拟机VirtualBox下载url 06|在虚拟机中安装Linux系统Linux安装镜像下载 07…

【Java从入门到精通】Java 流(Stream)、文件(File)和IO

Java.io 包几乎包含了所有操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。 Java.io 包中的流支持很多种格式&#xff0c;比如&#xff1a;基本类型、对象、本地化字符集等等。 一个流可以理解为一个数据的序列。输入流表示从一个源读取数据&#xff0c;输出流…

处理SAP 冲销凭证时由于业务部门不一致的报错问题:CTR 100011400L001属于业务部门3000 而不是3121

今天冲销一个2个月前的凭证&#xff0c;出现了一个报错&#xff1a;CTR 100011400L001属于业务部门3000 而不是3121。原因是组织调整冲销凭证时出现了这个错误。 其实解决方法之一是&#xff1a;把成本中心的业务部门换回去&#xff0c;等过账后再在成本中心那里改回来。 还有一…

向量体系结构(5):步幅集中一分散

笔记来源《计算机体系结构 量化研究方法》 回答上一篇最后留下的问题 向量体系结构&#xff1a;向量执行时间-CSDN博客 &#xff08;1&#xff09;如何有效向量化多维矩阵运算&#xff1f; &#xff08;2&#xff09;向量处理器如何高效处理稀疏矩阵&#xff1f; 步幅 步…

P9420 [蓝桥杯 2023 国 B] 子 2023 / 双子数

蓝桥杯2023国B A、B题 A题 分析 dp问题 根据子序列&#xff1a;2&#xff0c;20&#xff0c;202&#xff0c;2023分为4个状态&#xff1b; 当前数字为2时&#xff0c;处于dp[0]&#xff0c;或者和dp[1]结合成dp[2]&#xff1b; 当前数字为0时&#xff0c;和dp[0]结合成dp[…