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

【机器学习】支持向量机 | 支持向量机理论全梳理 对偶问题转换,核方法,软间隔与过拟合

支持向量机走的路和之前介绍的模型不同

之前介绍的模型更趋向于进行函数的拟合,而支持向量机属于直接分割得到我们最后要求的内容

1 支持向量机SVM基本原理

当我们要用一条线(或平面、超平面)将不同类别的点分开时,我们希望这条线尽可能地远离最靠近它的点。这些最靠近线的点被称为支持向量。而这条线到最靠近它的点的距离被称为间隔。支持向量机就是要找到一个最大间隔的线(或平面、超平面),这样可以更好地区分不同类别的点。

以下是支持向量机的一些关键概念和特性:

  1. 超平面:在二维空间中,超平面是一条直线;在三维空间中,它是一个平面;在更高维的空间中,超平面是一个超平面。对于一个二分类问题,超平面将特征空间划分为两个部分,每个部分对应一个类别。
  2. 支持向量:支持向量是离超平面最近的那些点。在SVM中,这些点对定义超平面起着重要作用,因为它们决定了超平面的位置。
  3. 间隔:支持向量到超平面的距离称为间隔。SVM的目标是找到具有最大间隔的超平面,这样可以更好地对新样本进行分类。

2 支持向量分类

2.1 支持向量机求解——对偶问题转换

在机器学习中,对偶问题是指将原始优化问题转化为另一个形式的问题。对于支持向量机(SVM)来说,对偶问题是通过对原始问题的拉格朗日函数进行求解得到的。

具体来说,原始的SVM优化问题是要最小化带有正则化项的损失函数。这个损失函数包括两部分:一部分是要使得分类间隔最大化,另一部分是要保证分类的准确性。直接求解这个问题可能比较复杂。为了简化求解过程,可以将原始问题转化为对偶问题。通过引入拉格朗日乘子,我们可以得到对偶问题。在对偶问题中,我们需要最大化一个关于拉格朗日乘子的函数,同时满足一些约束条件。

通过求解对偶问题,我们可以得到支持向量的拉格朗日乘子的最优解,然后可以使用这些乘子来计算权重向量和偏置,从而得到最终的分类超平面。

对偶问题满足KKT条件,KKT条件如下

KKT(Karush-Kuhn-Tucker)条件是最优化问题中的一组条件,用于描述在某些条件下最优解的性质。对于支持向量机(SVM)的对偶问题,KKT条件可以描述如下:

  1. 对偶互补条件:对于所有的 i i i,有 α i [ y i ( w T x i + b ) − 1 + ξ i ] = 0 \alpha_i [y_i (\mathbf{w}^T \mathbf{x}_i + b) - 1 + \xi_i] = 0 αi[yi(wTxi+b)1+ξi]=0,即对所有的支持向量,乘子 α i \alpha_i αi不为零的条件下, y i ( w T x i + b ) − 1 + ξ i = 0 y_i (\mathbf{w}^T \mathbf{x}_i + b) - 1 + \xi_i = 0 yi(wTxi+b)1+ξi=0,这表示支持向量的函数间隔与几何间隔之差等于1。

  2. 互补松弛条件:对于所有的 i i i,有 β i ξ i = 0 \beta_i \xi_i = 0 βiξi=0,即对所有的支持向量,松弛变量 ξ i \xi_i ξi不为零的条件下, β i = 0 \beta_i = 0 βi=0,表示松弛变量与 β i \beta_i βi之间的关系。

  3. KKT条件:对于所有的 i i i,有 α i ≥ 0 \alpha_i \geq 0 αi0 y i ( w T x i + b ) − 1 + ξ i ≥ 0 y_i (\mathbf{w}^T \mathbf{x}_i + b) - 1 + \xi_i \geq 0 yi(wTxi+b)1+ξi0 β i ≥ 0 \beta_i \geq 0 βi0 α i [ y i ( w T x i + b ) − 1 + ξ i ] = 0 \alpha_i [y_i (\mathbf{w}^T \mathbf{x}_i + b) - 1 + \xi_i] = 0 αi[yi(wTxi+b)1+ξi]=0 β i ξ i = 0 \beta_i \xi_i = 0 βiξi=0

KKT条件告诉我们,在最优解处,拉格朗日乘子和变量的取值必须满足这些条件。

基于KKT条件,更好求SVM的最优解

2.2 非线性问题——核方法

核方法是一种机器学习中常用的技术,特别是在支持向量机(SVM)等算法中经常使用。它的基本思想是通过一个非线性映射将原始的输入特征空间映射到一个更高维的特征空间,使得原本在低维空间中不可分的样本变得可分。这个非线性映射称为核函数,它可以避免在高维空间中进行实际的特征转换,从而节省计算成本。

在SVM中,核方法的主要作用是将样本从原始特征空间映射到一个更高维的空间,在这个高维空间中找到一个线性超平面来分割不同类别的样本。常用的核函数包括线性核、多项式核、高斯核(也称为径向基函数核)等,它们可以根据数据的特点选择合适的核函数来提高分类的准确性。

核方法的优势在于能够处理非线性可分的数据,同时避免了在高维空间中进行实际的特征转换,从而降低了计算复杂度。因此,核方法在机器学习中被广泛应用于分类、回归和聚类等任务中。

映射的时候,我们需要核函数进行映射

核函数是支持向量机(SVM)中的重要概念,它允许在高维空间中进行非线性分类。在SVM中,我们希望找到一个最优超平面来将不同类别的数据点分开。如果数据在原始特征空间中不是线性可分的,那么就需要使用核函数将数据映射到一个高维特征空间,使得数据在该空间中线性可分。

核函数的主要思想是,我们可以通过一个函数来计算两个向量在高维空间中的内积,而不必显式地计算它们在高维空间中的表示。这样做的好处是,可以避免在高维空间中显式地存储和计算数据,而是利用核函数的性质,只需计算原始特征空间中的内积,就可以得到在高维空间中的内积。这种技术称为“核技巧”。

常用的核函数包括:

  1. 线性核函数 K ( x i , x j ) = x i T x j K(\mathbf{x}_i, \mathbf{x}_j) = \mathbf{x}_i^T \mathbf{x}_j K(xi,xj)=xiTxj,直接计算两个向量在原始特征空间中的内积。
  2. 多项式核函数 K ( x i , x j ) = ( γ x i T x j + r ) d K(\mathbf{x}_i, \mathbf{x}_j) = (\gamma \mathbf{x}_i^T \mathbf{x}_j + r)^d K(xi,xj)=(γxiTxj+r)d,将数据映射到多项式特征空间。
  3. 高斯核函数(径向基函数核) K ( x i , x j ) = exp ⁡ ( − γ ∥ x i − x j ∥ 2 ) K(\mathbf{x}_i, \mathbf{x}_j) = \exp(-\gamma \|\mathbf{x}_i - \mathbf{x}_j\|^2) K(xi,xj)=exp(γxixj2),将数据映射到无穷维的特征空间,适用于非线性可分的情况。

通过使用核函数,SVM可以在高维空间中进行复杂的非线性分类,而不必显式地计算和存储高维数据。核函数的选择通常基于对数据特征的理解和试验结果。

2.3 防止过拟合——软间隔与正则化

软间隔是支持向量机(SVM)中的概念,用于处理线性不可分的情况。在标准的线性可分SVM中,我们希望找到一个最优超平面,将不同类别的数据点完全分开。然而,在现实应用中,数据往往不是完全线性可分的,即存在一些噪音或异常点。为了处理这种情况,引入了软间隔的概念。

软间隔允许一些数据点位于超平面的错误一侧,但是通过引入一个惩罚项,希望这些错误被最小化。具体来说,软间隔SVM的优化问题包括两部分:最小化误分类点的数量(间隔违例)和最大化间隔。

软间隔SVM的优化问题可以形式化如下:
m i n w , b , ξ 1 2 ∥ w ∥ 2 + C ∑ i = 1 m ξ i min_{\mathbf{w}, b, \xi} \frac{1}{2} \|\mathbf{w}\|^2 + C \sum_{i=1}^{m} \xi_i minw,b,ξ21w2+Ci=1mξi

subject to  y i ( w T x i + b ) ≥ 1 − ξ i , ξ i ≥ 0 , ∀ i \text{subject to } y_i (\mathbf{w}^T \mathbf{x}_i + b) \geq 1 - \xi_i, \quad \xi_i \geq 0, \quad \forall i subject to yi(wTxi+b)1ξi,ξi0,i

其中, w \mathbf{w} w是超平面的法向量, b b b是偏置项, ξ i \xi_i ξi是松弛变量, C C C是正则化参数,用于控制间隔违例的惩罚力度。优化问题的目标是要找到一个最优的超平面,以及对应的 ξ i \xi_i ξi,使得误分类的点尽量少,同时间隔尽量大。

软间隔SVM通过调节正则化参数 C C C可以在偏向于过拟合( C C C较小)和偏向于欠拟合( C C C较大)之间进行平衡,从而在实际应用中取得更好的性能。

2 支持向量回归

支持向量回归(Support Vector Regression,SVR)是支持向量机(SVM)的一种应用,用于解决回归问题。与传统的线性回归方法不同,SVR可以处理非线性关系,并且对异常值具有较强的鲁棒性。

SVR的基本思想与支持向量分类(SVC)类似,都是通过寻找一个最优的超平面(或者称为回归器)来拟合数据。与SVC不同的是,SVR的目标是最小化预测误差,而不是最大化间隔。

SVR的优化问题可以形式化如下:

min ⁡ w , b , ξ , ξ ∗ 1 2 ∥ w ∥ 2 + C ∑ i = 1 m ( ξ i + ξ i ∗ ) \min_{\mathbf{w}, b, \xi, \xi^*} \frac{1}{2} \|\mathbf{w}\|^2 + C \sum_{i=1}^{m} (\xi_i + \xi_i^*) minw,b,ξ,ξ21w2+Ci=1m(ξi+ξi)

subject to  { y i − w T ϕ ( x i ) − b ≤ ε + ξ i ∗ w T ϕ ( x i ) + b − y i ≤ ε + ξ i ξ i , ξ i ∗ ≥ 0 \text{subject to } \begin{cases} y_i - \mathbf{w}^T \phi(\mathbf{x}_i) - b \leq \varepsilon + \xi_i^* \\ \mathbf{w}^T \phi(\mathbf{x}_i) + b - y_i \leq \varepsilon + \xi_i \\ \xi_i, \xi_i^* \geq 0 \end{cases} subject to  yiwTϕ(xi)bε+ξiwTϕ(xi)+byiε+ξiξi,ξi0

其中, w \mathbf{w} w是回归器的权重向量, b b b是偏置项, ξ i \xi_i ξi ξ i ∗ \xi_i^* ξi是松弛变量, ε \varepsilon ε是一个预先指定的参数,称为容忍度, C C C是正则化参数。

SVR的核心思想是通过最小化间隔违例( ξ i \xi_i ξi ξ i ∗ \xi_i^* ξi)的同时,尽可能保持间隔边缘,从而找到一个最优的超平面来拟合数据。支持向量是那些落在间隔边缘上的数据点,它们对于定义超平面和拟合模型起着关键作用。

总的来说,SVR通过引入间隔违例和正则化参数,可以在保持模型简单性的同时,有效地拟合非线性关系,并且对异常值具有较好的鲁棒性。

相关文章:

【机器学习】支持向量机 | 支持向量机理论全梳理 对偶问题转换,核方法,软间隔与过拟合

支持向量机走的路和之前介绍的模型不同 之前介绍的模型更趋向于进行函数的拟合,而支持向量机属于直接分割得到我们最后要求的内容 1 支持向量机SVM基本原理 当我们要用一条线(或平面、超平面)将不同类别的点分开时,我们希望这条…...

【JS】APIs:事件流、事件委托、其他事件、页面尺寸、日期对象与节点操作

1 事件流 捕获阶段&#xff1a;从父到子 冒泡阶段&#xff1a;从子到父 1.1 事件捕获 <body> <div class"fa"><div class"son"></div> </div> <script>const fadocument.querySelector(.fa);const sondocument.qu…...

定制红酒:如何根据客户需求调整红酒口感与风格

在云仓酒庄洒派&#xff0c;云仓酒庄洒派深知不同消费者对于红酒的口感与风格有着不同的喜好和需求。因此&#xff0c;云仓酒庄洒派根据消费者的具体要求&#xff0c;灵活调整红酒的口感与风格&#xff0c;以满足他们的期望。 首先&#xff0c;云仓酒庄洒派会与消费者进行深入的…...

利用excel批量修改图片文件名

今天同事提出需求要实现利用excel批量修改某文件夹下的图片重命名&#xff0c;衡量到各种条件&#xff0c;最后还是选择了vbs来实现。代码如下 代码 创建Excel对象 Set objExcel CreateObject("Excel.Application") objExcel.Visible False 隐藏Excel窗口 打开Ex…...

间隔5分钟执行1次Python脚本设置步骤 —— 定时执行专家

《定时执行专家》是一款制作精良、功能强大、毫秒精度、专业级的定时任务执行软件&#xff0c;用于在 Windows 系统上定时执行各种任务&#xff0c;包括执行脚本或程序。 下面是使用 "定时执行专家" 软件设置定时执行 Python 脚本的步骤&#xff1a; 步骤 1: 设置 P…...

计算机网络基础【信息系统监理师】

计算机网络基础【信息系统监理师】 1、OSI七层参考模型2、TCP/IP协议3、网络拓扑结构分类4、网络传输介质分类5、网络交换技术6、网络存储技术7、网络规划技术8、综合布线系统8.1、综合布线工程内容8.1、隐蔽工程-金属线槽安装8.2、隐蔽工程-管道安装槽道与各种管线间的最小净距…...

网络安全风险评估:详尽百项清单要点

网络安全风险评估是识别、分析和评估组织信息系统、网络和资产中潜在风险和漏洞的系统过程。主要目标是评估各种网络威胁和漏洞的可能性和潜在影响&#xff0c;使组织能够确定优先顺序并实施有效的安全措施来减轻这些风险。该过程包括识别资产、评估威胁和漏洞、分析潜在影响以…...

不会用虚拟机装win10?超详细教程解决你安装中的所有问题!

前言&#xff1a;安装中有任何疑问&#xff0c;可以在评论区提问&#xff0c;博主身经百战会快速解答小伙伴们的疑问 BT、迅雷下载win10镜像&#xff08;首先要下载win10的镜像&#xff09;&#xff1a;ed2k://|file|cn_windows_10_business_editions_version_1903_updated_sep…...

洛谷 素数环 Prime Ring Problem

题目描述 PDF 输入格式 输出格式 题意翻译 输入正整数 nn&#xff0c;把整数 1,2,\dots ,n1,2,…,n 组成一个环&#xff0c;使得相邻两个整数之和均为素数。输出时&#xff0c;从整数 11 开始逆时针排列。同一个环恰好输出一次。n\leq 16n≤16&#xff0c;保证一定有解。 多…...

【DPDK】基于dpdk实现用户态UDP网络协议栈

文章目录 一.背景及导言二.协议栈架构设计1. 数据包接收和发送引擎2. 协议解析3. 数据包处理逻辑 三.网络函数编写1.socket2.bind3.recvfrom4.sendto5.close 四.总结 一.背景及导言 在当今数字化的世界中&#xff0c;网络通信的高性能和低延迟对于许多应用至关重要。而用户态网…...

开源好用的所见即所得(WYSIWYG)编辑器:Editor.js

文章目录 特点基于区块干净的数据 界面与交互插件标题和文本图片列表Todo表格 使用安装创建编辑器实例配置工具本地化自定义样式 今天介绍一个开源好用的Web所见即所得(WYSIWYG)编辑器&#xff1a; Editor.js Editor.js 是一个基于 Web 的所见即所得富文本编辑器&#xff0c;它…...

sqlite 损坏 修复

步骤1 SQLite Download Page下载sqlite3 对应的系统版本 2.参考怎么恢复sqlite 数据库文件✅ - 有乐数据恢复网 sqlite3 dbname > .mode insert > .output dbdump.sql > .dump > .exit 恢复方法1 1.创建一个新的数据库 例如名字叫 test.db 2sqlite3 test.…...

初学Vue——Vue路由

0 什么是Vue路由 类似于Html中的超链接(<a>)一样&#xff0c;可以跳转页面的一种方式。 前端路由&#xff1a;URL中hash(#号之后的内容)与组件之间的对应关系&#xff0c;如下图&#xff1a; 当我们点击左侧导航栏时&#xff0c;浏览器的地址栏会发生变化&#xff0c;路…...

如何使用宝塔面板搭建Discuz并结合cpolar实现远程访问本地论坛

文章目录 前言1.安装基础环境2.一键部署Discuz3.安装cpolar工具4.配置域名访问Discuz5.固定域名公网地址6.配置Discuz论坛 前言 Crossday Discuz! Board&#xff08;以下简称 Discuz!&#xff09;是一套通用的社区论坛软件系统&#xff0c;用户可以在不需要任何编程的基础上&a…...

llc的基波分析法

对于我们之前分析的 LLC等效谐振电路的分析&#xff0c;其实我们发现分析的并不是完整的方波输入&#xff0c;而是用正弦波来分的 那么为何用基波来分析呢&#xff0c;因为对于方波而言&#xff0c;根据傅里叶级数它是可以分解成基波、 1次、3次、5次.......等各种奇次谐波的入…...

一键清除JavaScript代码中的注释:使用正则表达式实现

这个正则表达式可以有效地匹配 JavaScript 代码中的各种注释&#xff0c;并且跳过了以 http: 或 https: 开头的链接。 /\/\*[\s\S]*?\*\/|\/\/[^\n]*|<!--[\s\S]*?-->|(?<!http:|https:)\/\/[^\n]*/gvscode 实战&#xff0c;ctrlF 调出查找替换工具&#xff0c;点…...

第七次作业

IPSEC VPPN实验配置 目标&#xff1a;在FW5和FW3之间建立一条IPSEC通道&#xff0c;保证10.0.2.0/24网段可以正常访问到192.168.1.0/24 1.FW1和FW2进行双机热备&#xff08;之前实验没保存&#xff0c;可看上个实验&#xff09; 还有一些配置前面实验有。 2.场景选择点对点…...

在jupyternotebook中,如何解决作图时负号无法显示的问题?

输入以下代码即可。 import matplotlib as mpl mpl.rcParams[axes.unicode_minus] False 原文链接&#xff1a;在jupyternotebook中&#xff0c;如何解决作图时负号无法显示的问题&#xff1f;...

ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。

发生的错误信息&#xff1a; File "C:\Users\malongqiang\.conda\envs\ObjectDetection\lib\ssl.py", line 1309, in do_handshakeself._sslobj.do_handshake() ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。 分析原因&#xff1a; …...

主流开发语言与环境介绍

主流开发语言与环境介绍 1. 引言 随着计算机科学的不断发展&#xff0c;各种编程语言和开发环境层出不穷。选择一种适合自己的主流开发语言和环境是每个开发者都必须面临的问题。本文将为大家介绍几种目前最为流行的主流开发语言和环境&#xff0c;帮助读者选择合适的工具进行…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台&#xff0c;以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中&#xff0c;Producer&#xff08;生产者&#xff09; 是连接客户端应用与消息队列的第一步。生产者…...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

管理学院权限管理系统开发总结

文章目录 &#x1f393; 管理学院权限管理系统开发总结 - 现代化Web应用实践之路&#x1f4dd; 项目概述&#x1f3d7;️ 技术架构设计后端技术栈前端技术栈 &#x1f4a1; 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 &#x1f5c4;️ 数据库设…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中&#xff0c;车辆不再仅仅是传统的交通工具&#xff0c;而是逐步演变为高度智能的移动终端。这一转变的核心支撑&#xff0c;来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒&#xff08;T-Box&#xff09;方案&#xff1a;NXP S32K146 与…...

JavaScript基础-API 和 Web API

在学习JavaScript的过程中&#xff0c;理解API&#xff08;应用程序接口&#xff09;和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能&#xff0c;使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...

Java求职者面试指南:计算机基础与源码原理深度解析

Java求职者面试指南&#xff1a;计算机基础与源码原理深度解析 第一轮提问&#xff1a;基础概念问题 1. 请解释什么是进程和线程的区别&#xff1f; 面试官&#xff1a;进程是程序的一次执行过程&#xff0c;是系统进行资源分配和调度的基本单位&#xff1b;而线程是进程中的…...

客户案例 | 短视频点播企业海外视频加速与成本优化:MediaPackage+Cloudfront 技术重构实践

01技术背景与业务挑战 某短视频点播企业深耕国内用户市场&#xff0c;但其后台应用系统部署于东南亚印尼 IDC 机房。 随着业务规模扩大&#xff0c;传统架构已较难满足当前企业发展的需求&#xff0c;企业面临着三重挑战&#xff1a; ① 业务&#xff1a;国内用户访问海外服…...

基于Uniapp的HarmonyOS 5.0体育应用开发攻略

一、技术架构设计 1.混合开发框架选型 &#xff08;1&#xff09;使用Uniapp 3.8版本支持ArkTS编译 &#xff08;2&#xff09;通过uni-harmony插件调用原生能力 &#xff08;3&#xff09;分层架构设计&#xff1a; graph TDA[UI层] -->|Vue语法| B(Uniapp框架)B --&g…...