【机器学习】深入探索SVM概念及其核方法

ops/2025/2/12 3:03:39/

目录

🍔支持向量机概述

🍔软间隔和硬间隔

🍔 惩罚参数 C 的作用

🍔 核方法

🍔 损失函数

🍔 小结


 

学习目标

  • 了解支持向量机的优化目标

  • 了解软间隔和硬间隔的区别

  • 了解惩罚参数 C 的作用

  • 知道常用的核方法

  • 知道SVM的损失函数

🍔支持向量机概述

支持向量机在深度学习技术出现之前,使用高斯核的支持向量机在很多分类问题上取得了很好的结果,支持向量机不仅用于分类,还可以用于回归问题。它具有泛化性能好,适合小样本和高维特征的优点。

SVM 是 N 维空间的分类超平面,它将空间切分成两部分。对于二维空间,它是一条线,对于三维空间,它是一个平面,对于更高维空间,它是超平面。

一般情况下,给定一组样本可以得到不止一个可行的线性分类器。那么,在多个可行的线性分类器中,什么样的分类器是最好的?

直观上看,为了得到泛化性更好的分类器,分类平面应该应该不偏向于任何一类,并且距离两个样本都尽可能远,这种以最大化分类间隔为目标的线性分类器就是支持向量机

🍔软间隔和硬间隔

硬间隔指的是让所有的样本都不在最大间隔之间,并位于正确的一边,这就是硬间隔。如果出现异常值、或者样本不能线性可分,此时硬间隔无法实现。

软间隔指的是我们容忍一部分样本在最大间隔之内,甚至在错误的一边。相对来说,软间隔可以应用在一些线性不可分的场景。

🍔 惩罚参数 C 的作用

在硬间隔的情况下,我们只考虑如何使得间隔达到最大。在软间隔的情况,我们即要考虑最大化间隔,也要考虑到那些限制间隔违例的样本带来的损失。

C越大说明, 违反限制间隔的样本点带来的损失就越大,就要减少这些样本的数量,所以间隔就要越小。

C越小说明, 违反限制间隔的样本点带来的损失就越小,可以适当增大间隔,以增加模型的泛化能力。

🍔 核方法

当存在线性不可分的场景时,我们需要使用核函数来提高训练样本的维度、或者将训练样本投向高维

高斯核函数使用较多。

  1. 线性核:一般是不增加数据维度,而是预先计算内积,提高速度

  2. 多项式核:一般是通过增加多项式特征,提升数据维度,并计算内积

  3. 高斯核(RBF、径向基函数):一般是通过将样本投射到无限维空间,使得原来不可分的数据变得可分。

  4. 其他了解即可

SVM 默认使用 RBF 核函数,将低维空间样本投射到高维空间,再寻找分割超平面。

🍔 损失函数

0-1 损失:

  1. 当正例样本落在 y=0 下方则损失为 0,否则损失为 1.

  2. 当负例样本落在 y=0 上方则损失为0,否则损失为 1.

Hinge (合页)损失:

  1. 当正例落在 y >= 1 一侧则损失为0,否则距离越远则损失越大.

  2. 当负例落在 y <= -1 一侧则损失为0,否则距离越远则损失越大.

Logistic 损失:

  1. 当正例落在 y > 0 一侧,并且距离 y=0 越远则损失越小.

  2. 当负例落在 y < 0 一侧,并且距离 y=0 越远则损失越小.

​​​​​​​

🍔 小结​​​​​​​

  • 支持向量机可用于回归问题、也可用于分类问题

  • 硬间隔指的是样本必须全部分类正确,软间隔指的是允许部分样本间隔违例

  • 惩罚参数 C 用于惩罚间隔违例样本带来的损失,C 越大越不能容忍间隔违例,C 越小越能容忍间隔违例

  • 常用的核方法:线性核,多项式核,高斯核

  • 损失函数包括 0-1 损失,Hinge (合页)损失,Logistic 损失

 


http://www.ppmy.cn/ops/157674.html

相关文章

微软编程之C#如何学习,C#学习路线:从入门到精通

引言 C# 是一种由微软开发的面向对象编程语言&#xff0c;广泛应用于 Windows 应用程序开发、游戏开发&#xff08;Unity&#xff09;、Web 开发&#xff08;ASP.NET&#xff09;等领域。对于初学者来说&#xff0c;掌握 C# 不仅能够打开编程世界的大门&#xff0c;还能为未来…

【开源项目】数字孪生武汉~超经典智慧城市CIM/BIM数字孪生可视化项目——开源工程及源码

飞渡科技数字孪生武汉CIM管理平台&#xff0c;基于自研数字孪生引擎&#xff0c;结合数字孪生、物联网IOT、云计算等信息技术&#xff0c;以城市数据资源融合共享为主线&#xff0c;打造感知、联结、计算、运用“四位一体”的城市大脑&#xff0c;赋能经济社会高质量可持续发展…

13.8 聚焦应用场景的Prompt设计实战:从通用到领域专用的翻译质量跃升

聚焦应用场景的Prompt设计实战:从通用到领域专用的翻译质量跃升 关键词:领域特定Prompt设计、翻译质量优化、动态术语控制、多阶段推理链、Prompt版本管理 1. 翻译Prompt设计核心原则 1.1 领域知识深度渗透 def build_medical_prompt(): return ChatPromptTemplate.from_…

建筑物损坏程度分割数据集labelme格式2816张5类别

数据集格式&#xff1a;labelme格式(不包含mask文件&#xff0c;仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数)&#xff1a;2816 标注数量(json文件个数)&#xff1a;2816 标注类别数&#xff1a;5 标注类别名称:["minor-damage","destroyed&quo…

【vscode源码】如何编译运行vscode及过程中问题解决

Visual Studio Code&#xff08;VSCode&#xff09;作为一款流行的开源编辑器&#xff0c;市面上很多基于vscode的套壳APP&#xff0c;本文将详细介绍如何编译和运行VSCode的源码&#xff0c;并总结一些常见问题以及解决方案&#xff0c;帮助开发者顺利二次开发。 1. 准备工作(…

【Ubuntu VScode Remote SSH 问题解决】Resolver error: Error: XHR failed

问题描述 VScode使用remote ssh 远程服务器&#xff0c;报错类似&#xff1a; [12:06:01.219] Downloading VS Code server locally... [12:06:01.310] Resolver error: Error: XHR failedat k.onerror (vscode-file://vscode-app/private/var/folders/g1/cvs2rnpx60qc3b4_x7…

03-DevOps-安装并初始化Gitlab

Gitlab可以理解为是自己搭建的GitHub&#xff0c;也就是自己的代码仓库。 开启macvlan 在192.168.1.10服务器上&#xff0c;构建Macvlan网络&#xff0c;这种网络模式可以为每个容器独立分配ip。 docker network create -d macvlan \--subnet192.168.1.0/24 \--ip-range192.16…

react 19 useOptimistic 竞争更新乐观值时阻塞

react 19 刚刚出&#xff0c;我在官网上调试这个 useOptimistic api 时&#xff0c;发现了一个竞争调用时的阻塞状态。当连续多次调用 updateFn 参数&#xff0c;且每次更新时间较长时&#xff0c;乐观状态的更新被阻塞了。 前往官网 useOptimistic 一节&#xff0c;修改末尾 …