【机器学习300问】26、什么是SVM支持向量机?

news/2024/4/19 13:48:18/文章来源:https://blog.csdn.net/qq_39780701/article/details/136459935

〇、小卖部二分类的例子

        地图上有两个小卖部A和B,地图上的点代表一个人,调查这些人去A或者B小卖部的可能性,根据可能性将人群分为A派和B派。假设我们只考虑人们距离小卖部的距离这一个特征,比如距离A小卖部近的人去A的概率大。

图1

        有监督的二分类模型,就是希望找到这样一个决策边界,使得正类数据和负类数据尽可能的分开。于是找到这个决策边界的策略不同,诞生了很多机器学习算法。

        假如我有这样一个策略,找到距离小卖部最远的人,并在与他相隔一段距离的位置画一条线当做决策边界。便可以区分开两种人群,像下图这样:

图2

一、支持向量机是什么?

        定义:支持向量机(Support Vector Machine, SVM)是一种监督学习模型,在机器学习领域中主要用于分类和回归分析,但其在分类任务上的表现尤为突出。

        基本思想:SVM的基本思想是通过构建一个最大间隔决策边界来划分不同类别的数据点,这个决策边界能够最大化两个类别之间的边界距离,也就是最大化分类的“间隔”。

看上面这个很专业的定义和基本思想会有这样几个问题:

  1. 什么是支持向量?
  2. 两个类别之间的边界距离(也就是“间隔”)怎么确定?
  3. SVM的目的是什么?

(1)什么是支持向量?

        支持向量机SVM名字就带有“支持向量”,所以弄懂什么是支持向量非常重要!我先简单一句话说:支持向量的本质就是一些特殊的样本点,特殊在他们距离边界最近。

        换个说法:支持向量(Support Vectors)是指在训练集中的那些对构建分类决策边界起决定性作用(又可以说是支撑作用)的样本点。

        它们还有一个特点这里必须提到:支持向量直接决定了决策边界的位置,并且只有这些点对最终模型有直接影响;改变其他非支持向量的样本位置不会改变最优决策边界。

(2)两个类别之间的边界距离怎么确定?

        这里的“边界距离”通常指的是支持向量到决策边界(超平面)的距离,也称为间隔。

        在SVM中,决策边界是通过最大化两类之间的间隔来确定的。这个间隔是支持向量(即最接近决策边界的数据点)到决策边界的距离的两倍。

(3)SVM的目的是什么?

        对于线性可分的数据集,SVM的目标是在二维空间中找到一条直线,使得这个直线不仅能够将不同类别的样本分开,而且两类样本距离该直线的距离(即间隔)最大。

图3

三、什么是软间隔SVM?

(1)硬间隔SVM与软间隔SVM        

        有软间隔SVM,那你肯定会问有没有硬间隔SVM?当然有!实际上如果你不强调软间隔SVM的话,默认就是在说硬间隔SVM。硬间隔是说,决策边界必须将所有的样本都分开!有着很强硬的一个间隔!我要把每一个都分开!实际上这是一种理想情况,对应的是线性可分样本空间,例如上面图2的情况。

图4

        所谓软间隔SVM,就是容忍误差的存在,允许一些正类样本点跑到负类中去。但“容忍”意味着有个限度,这个容忍限度就叫做松弛变量(或称为惩罚变量)。

        这样做有一些好处,比如在硬间隔SVM中,模型要求所有训练样本都能够被超平面正确且最大化地分开,即所有的样本都必须位于决策边界的同侧,并且离边界有一定的最小距离。然而,在现实世界的应用场景中,数据往往不是完全线性可分的,强行寻找一个能够将所有样本严格分开的超平面可能会导致过拟合问题,即模型对训练数据表现得过于完美而丧失了泛化能力。所以软间隔SVM可以:

  1. 处理非线性可分的数据
  2. 提高模型的泛化能力

(2)软间隔SVM是怎么做到惩罚的呢?

        软间隔SVM引入了一个松弛变量,允许某些样本点可以跨越决策边界而不严格满足分类条件,同时通过引入惩罚项来控制这种“违规”的程度。这个惩罚项通常体现在目标函数中,通过一个参数C(惩罚系数)来控制模型对误分类样本的容忍度和对间隔大小的重视程度

四、什么是内核函数?

        之前在讲硬间隔的时候说到了,现实世界的数据往往不是完全线性可分的,那么对于无法线性分离的情况,除了软间隔SVM还有什么别的方法吗?有的!

        现在我们把小卖部二分类的例子,做一点点改变,如果人们的位置用经度和维度来表示,例如下面这样的样本空间:

 如果只有经度和维度两个特征量来标注样本的话,那么这个训练集就是一个非线性的,但是假设我们再加上一个海拔特征量,也许就可以将样本区分开!像是这样:

        常用的核函数包括线性核、多项式核、高斯核(径向基函数核,RBF)和Sigmoid核等。这些核函数具有不同的特性和适用场景。例如,线性核主要用于线性可分的数据集,而多项式核和高斯核则可以处理非线性可分的数据集。Sigmoid核在某些情况下也与神经网络有关。 具体这个核函数长什么样子?怎么用?就不在这篇文章里阐述了。后续有机会单独写文章为大家介绍。

五、什么是核技巧?

        核技巧(Kernel Trick)是支持向量机(SVM)中的一项重要技术。它允许在解决非线性分类或回归问题时,将低维空间中的数据通过某种映射函数 \(\phi\) 映射到高维特征空间,在这个新空间中原本不可分的数据可能变得线性可分。

        然而,直接计算高维空间中的内积或距离运算往往非常复杂或者计算成本高昂,尤其是当映射后的维度非常高时。核技巧的关键在于,它不是直接进行这种高维映射,而是通过定义一个核函数,使得在原始低维空间中可以直接计算两个样本在高维特征空间上的内积

        利用核函数,可以在不显式地执行高维映射的情况下求解优化问题,从而大大简化了算法的实现,并且保持了良好的计算效率和泛化能力。在支持向量机中,核技巧被广泛应用于训练阶段,特别是在构建最大化间隔超平面时,以及在预测阶段评估新样本类别时。

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

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

相关文章

总结Redis的原理

一、为什么要使用Redis 缓解数据库访问压力mysql读请求进行磁盘I/O速度慢,给数据库加Redis缓存(参考CPU缓存),将数据缓存在内存中,省略了I/O操作 二、Redis数据管理 2.1 redis数据的删除 定时删除惰性删除内存淘汰…

医学大数据|统计基础|医学统计学(笔记):开学说明与目录

开始学习统计基础,参考教材:医学统计学第五版 点点关注一切来学习吧 责任编辑:医学大数据刘刘老师:头部医疗大数据公司医学科学部研究员 邮箱:897282268qq.com 久菜盒子工作室 我们是:985硕博/美国全奖…

Git 掌握

目录 一、前言 二、centos安装Git 三、Git基本操作 (1) 创建Git本地仓库 (2) 配置Git (3) 认识工作区,暂存区,版本库 四、添加文件 五、查看.git文件 六、修改文件 七、版本回退 八、撤销修改 (1) 场景一 对于还没有add的代码 (2) 场景二 已…

【Educoder数据挖掘实训】异常值检测-值域法

【Educoder数据挖掘实训】异常值检测-值域法 开挖! 这个题中 l o f lof lof算法给的很抽象,先用比较通俗的方式说一下: 首要想法是找到不合群的点,也就是异常点。采用的方法是对局部可达密度进行判断。相较于其他普通的简单基于聚…

可以实现单个、两个、四个圆角的qml自定义控件

控件名: RadiusRectangle File: RadiusRectangle.qml import QtQuick 2.0Item {id: rootwidth: 100height: 100clip: trueproperty int itemRadius: 0property color itemColor: "red"property real itemOpacity: 1property int rightMargin: 0property int leftMar…

CubeMX使用教程(3)——GPIO

在第二章我们完成了点灯仪式,这次我准备尝试把按键和灯结合起来,做一次GPIO的综合测试 实验任务为:按下按键1(B1),第1个灯(LD1)亮; 按下按键2(B2)…

【应用多元统计分析】--多元数据的描述和展示(R语言)

一元随机变量 我们用协方差来刻画两个变量的相关关系,这里指的是线性相关关系。 对于一元随机变量的可视化最简单的就是散点图,大致可以看出X和Y之间的相关关系。如果想更好的看X、Y之间的相关关系,可以画二维的散点图。 总结: 均…

重塑语言智能未来:掌握Transformer,驱动AI与NLP创新实战

Transformer模型 Transformer是自然语言理解(Natural Language Understanding,NLU)的游戏规则改变者,NLU 是自然语言处理(Natural Language Processing,NLP)的一个子集。NLU已成为全球数字经济中AI 的支柱之一。 Transformer 模型标志着AI 新…

基于AI软件平台 HEGERLS智能托盘四向车机器人物流仓储解决方案持续升级

随着各大中小型企业对仓储需求的日趋复杂,柔性、离散的物流子系统也不断涌现,各种多类型的智能移动机器人、自动化仓储装备大量陆续的应用于物流行业中,但仅仅依靠传统的物流技术和单点的智能化设备,已经无法更有效的应对这些挑战…

【数仓】Kafka消息可视化工具:Offset Explorer(原名kafka Tool)

Offset Explorer(以前称为Kafka Tool)是一个用于管理和使用Apache Kafka集群的GUI应用程序。 它提供了一个直观的界面,允许用户快速查看Kafka集群中的对象以及集群主题中存储的消息。 它包含面向开发人员和管理员的功能。 一些主要功能包括&a…

redis 性能优化二

前言 性能优化的第二篇文章,将重点讲一下Redis 的响应延迟,响应延迟如何对redis 进行优化。这个延迟不是说一个命令或者几个命令变慢了,延迟了几秒,就说Redis 变慢了。在不同的软硬件环境下,Redis 本身的绝对性能并不…

C++STL【priority_queue 优先级队列】

priority_queue 优先级队列 介绍 priority_queue,优先级队列,它的底层是个vector,在vector的基础上封装堆的算法,于是它摇身一变,成了一个存储在一块连续空间中的堆。 《什么是堆?》 堆是一棵完全二叉树&…

案例5 RPC调用请求规则链

您已将以下设备连接到ThingsBoard: Wind Direction Sensor. 风向传感器。Rotating System. 旋转系统。 also, you have one asset: 你还有一项资产 Wind Turbine. 风力涡轮机。 您要向旋转系统发起RPC请求,并根据风向更改风力涡轮机的方向。 https:/…

SQL 初级

SQL 初级 SQL 简介 SQL (Structured Query Language:结构化查询语言) 是用于管理关系数据库管理系统(RDBMS)。 SQL 的范围包括数据插入、查询、更新和删除,数据库模式创建和修改,以及数据访问控制。 SQL 是什么? SQL…

从新能源汽车行业自动驾驶技术去看AI的发展未来趋势

自动驾驶汽车关键技术主要包括环境感知、精准定位、决策与规划、控制与执行、高精地图与车联网V2X以及自动驾驶汽车测试与验证技术等。 🐓 自动驾驶技术 这是AI在汽车行业中应用最广泛的领域之一。自动驾驶技术利用AI算法和传感器来感知环境、识别障碍物&#xff0c…

力扣大厂热门面试算法题 - 矩阵

解数独,单词搜索,被围绕的区域。每题做详细思路梳理,配套Python&Java双语代码, 2024.03.07 可通过leetcode所有测试用例。 目录 37. 解数独 解题思路 完整代码 Python Java 79. 单词搜索 解题思路 完整代码 Python…

多目标粒子群(MOPSO)算法原理及其MATLAB实现

粒子群算法(PSO)是Eberhart和Kennedy于1995年提出的一种模拟鸟类觅食行为的算法[1],具有操作简单、速度快等特点。但在实际应用中,许多决策问题都是多目标优化问题,采用粒子群算法来处理多目标优化问题是一种有效方法,Coello 等人…

小型内衣裤洗衣机哪个牌子好?四款高热度内衣洗衣机力荐

相信很多用户从小就有个观念,内衣裤不能跟其他衣物一起混合洗,否则会感染细菌,所以不少人的内衣裤一直都是自己手洗的,清洗内衣裤不算麻烦,但日常都要换洗,对一个白天上班已经很累的人来说,真是…

Redis:java中redis的基本使用(springboot)

文章目录 springboot中使用redisspringboot 连接 redis三种方式导入依赖增删改查小练习 springboot中使用redis springboot 连接 redis三种方式 jedis (redis官方提供的)springboot自带的redisson (基于jedis优化的,性能最好,使…

MySQl基础入门③

上一遍内容 接下来我们都使用navicat软件来操作数据了。 1.新建数据库 先创建我门自己的一个数据库 鼠标右键点击bendi那个绿色海豚的图标,然后选择新建数据库。 数据库名按自己喜好的填,不要写中文, 在 MySQL 8.0 中,最优的字…