支持向量机SVM推导及求解过程

article/2025/9/13 6:36:12

        支持向量机是属于原创性、非组合的具有明显直观几何意义的分类算法,具有较高的准确率。

        使用SVM算法的思路:(1)简单情况,线性可分情况,把问题转化为一个凸优化问题,可以用拉格朗日乘子法简化,然后用既有的算法解决;(2)复杂情况,线性不可分,用核函数将样本投射到高维空间,使其变成线性可分的情形,利用核函数来减少高纬度计算量。

       一、SVM相关基本概念

       分割超平面

       设C和D为两不相交的凸集,则存在超平面P,P可以将C和D分离。 

        两个集合的距离,定义为两个集合间元素的最短距离。

        做集合C和集合D最短线段的垂直平分线。

          (图像摘自七月算法)


       但是, 如何定义两个集合的"最优"分割超平面?找到集合“边界”上的若干点,以这些点为“基础”计算超平面的方向,以两个集合边界上的这些点的平均作为超平面的“截距”。这些点被称作支持向量,点是可用向量方式表示。

       (图像取自七月算法)

        

        输入数据

        假设给定一个特征空间上的训练数据集

其中,,为第i个实例(若n>1,即x是多维度,具有多个属性特征,此时为向量);

        的类标记,当为+1时,称为正例,当为-1时,称为负例。

       

       线性可分支持向量机

        给定线性可分训练数据集,通过间隔最大化得到的分离超平面为,相应的分类决策函数该决策函数称为线性可分支持向量机。其中,是某个确定的特征空间转换函数,它的作用是将x映射到(更高的)维度,最简单直接的:。事实上,求解分离超平面问题可以等价为求解相应的凸二次规划问题。


      整理符号

        分割平面:

        训练集:

        目标值:

        新数据的分类:


 二、SVM推导过程

       推导目标函数

        根据题设

        有:

      w,b等比例缩放,则t*y的值同样缩放,从而


        最大间隔分离超平面

        目标函数:表示最近点到直线距离尽可能大


(图像取自七月算法)

        函数间隔和几何间隔

       分割平面:  (函数间隔)

       总可以通过等比例缩放w的方法,使得两类点的函数值都满足

             (图像取自七月算法)


     建立目标函数

       1.总可以通过等比例缩放w的方法,使得两类点的函数值都满足

       2.约束条件:

       3.原目标函数:

       4.新目标函数:

                       

       5.目标函数变换一下:

                       

        6.拉格朗日乘子法

                      

         7.原问题是极小极大问题

                      

                       原问题的对偶问题是极大极小问题

         8.将6中的拉格朗日函数分别对w, b 求偏导并令其为0:

                       

           9.计算拉格朗日的对偶函数

                        

         10.继续求的极大

                      

         11.整理目标函数:添加负号

                      

        12.线性可分支持向量机学习算法

               计算结果如下

                      

        13.分类决策函数

                        

       三、线性不可分SVM

         1.若数据线性不可分,则增加松弛因子,使函数间隔加上松弛变量大于等于1,

         则约束条件变成

                         

         目标函数:    (这里是为了保证松弛因子不至于过大)

         2.此时的凸优化为

                        

          3.拉格朗日函数

                         

        4.将三式代入L中,得到

                      

       5. 整理,得到对偶问题的最优化问题

                    

      求得最优解

      6.计算

                   

       实践中往往取支持向量的所有值取平均,作为b*

       7.求得分离超平面

       8.分类决策函数为

     


       核函数:可以使用核函数,将原始输入空间映射到新的特征空间,从而使得原本线性不可分的样本可在核空间可分。

       有多项式核函数

       高斯核函数RBF 

       字符串核函数

        在实际应用中,往往依赖先验领域知识或交叉验证等方案才能选择有效的核函数。没有更多先验信息,则使用高斯核函数。

核函数映射:

                          (图像取自七月算法)

                         (图像取自七月算法)


                  高斯核

                                       (图像取自七月算法)

          粗线是分割超“平面”,其他线是y(x)的等高线,绿色圈点是支持向量点。

          高斯核是无穷维的,因为


          注:SVM和Logistic回归的比较:(1)经典的SVM,直接输出类别,不给出后验概率;(2)Logistic回归,会给出属于哪一个类别的后验概率;(3)比较重点是二者目标函数的异同。

       


http://chatgpt.dhexx.cn/article/MifY1HtA.shtml

相关文章

SVM 公式推导

1、SVM思想 (1)SVM算法的依据就是分类器B的分类间隔比分类器C的分类间隔大。这里涉及到第一个SVM独有的概念”分类间隔”。在保证决策面方向不变且不会出现错分样本的情况下移动决策面,会在原来的决策面两侧找到两个极限位置(越过…

机器学习笔记之十二——SVM原理及推导

svm(support vector machine)是一种二分类算法,它的目标在于寻找一个能将两种点分离的直线或平面或超平面。 如图(来自wiki): 图中的红线将两边数据点分开,这条线就是分割直线,同样…

DFS与DP算法

名词解释: DFS(Dynamic Plan):动态规划 DFS(Depth First Search):深度优先搜索 DFS与DP的关系 很多情况下,dfs和dp两种解题方法的思路都是很相似的,这两种算法在一定程度上是可以互相转化的。 想到dfs也就常常会想到dp…

​Python—数据结构与算法​---动态规划—DP算法(Dynamic Programing)

我们一路奋战, 不是为了改变世界, 而是为了不让世界改变我们。 目录 我们一路奋战, 不是为了改变世界, 而是为了不让世界改变我们。 动态规划——DP算法(Dynamic Programing) 一、🏔斐波那契…

XDOJ(智慧平台)--分配宝藏(用动态规划dp算法解决)(C语言)

------------------------------------------------------------ 作为西电渣渣,这是我第一次接触需要一些很明确的算法的题目。 第一次博客写废话较多hhh,可以直接到下面看分析 我在昨天晚上和舍友一起肝这道题,肝了一个晚上都没有解决&…

dp算法篇Day1

"多希望有人来陪我,度过末日啊~" 讲讲我为什么突然想更新这篇栏目。 想想自己也算 "系统" 接触计算机这个学科也有差不多一年了,回想起当初下定决心要全身心投入到这个专业或者说行业中来,现在到了这样的地步&#xff0c…

第十四周DP算法总结

这周自己主要再看DP算法的博客,感觉DP这一部分内容确实比之前的都要麻烦一些,最后攻克这一部分难题还是挺好的。 这周自己总结了一些题型,以及一些方法思路,最后再把动态规划和之前的分治和贪心做一下比较。下面是详细的总结。 动…

DP算法(Dynamic Programming,俗称动态规划)是最经典算法之一

DP算法(Dynamic Programming,俗称动态规划)是最经典算法之一.本笔记以耳熟能详的数塔问题为引子,深入讨论01背包的解决方法. 首先,如下图所示,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少? 这个问题,对…

DP算法:动态规划算法

步骤 (1)确定初始状态 (2)确定转移矩阵,得到每个阶段的状态,由上一阶段推到出来 (3)确定边界条件。 例题 蓝桥杯——印章(python实现) 使用dp记录状态&#x…

动态规划(DP)算法初识

先用大白话来说一下几种经典算法大概的意思: 贪心算法:我就一次机会,为了达到目的,其他的我啥也不考虑回溯算法:我有无数次机会,还能怕我有达不到目的的时候?动态规划算法:我能随意…

常用十大算法_动态规划算法(DP)

动态规划算法(DP) 高能预警:DP算法不容易理解,需要动脑筋查资料找例题 动态规划算法(Dynamic Programming),是将复杂问题拆分成子问题,并在子问题的基础上,求解复杂问题…

动态规划算法(DP)

校招笔试面试前,大家一般都会先去牛客网上刷刷题,《剑指offer》,《leetcode》走起来,然后初次入手,发现很多不会,不会到什么程度呢,连个想法都没有,于是就去讨论区看答案,然后java大神,c++大神会给出花式解答,他们喜欢在答案前加一句,简单的dp算法,递归就可以解决…

【算法笔记】树形DP算法总结详解

0. 定义 树形DP,又称树状DP,即在树上进行的DP,是DP(动态规划)算法中较为复杂的一种。 1. 基础 令 f [ u ] f[u]~ f[u] 与树上顶点 u u u有关的某些数据,并按照拓扑序(从叶子节点向上到根节点…

★动态规划(DP算法)详解

什么是动态规划:动态规划_百度百科 内容太多了不作介绍,重点部分是无后效性,重叠子问题,最优子结构。 问S->P1和S->P2有多少种路径数,毫无疑问可以先从S开始深搜两次,S->P1和S->P2找出所有路…

ubuntu安装qt

Ubuntu安装qt 到qt官网下载“qt-opensource-linux-x64-5.9.1.run” 分别安装g, build-essential, libglq-mesa-dev, libglu1-mesa-dev freeglut3-dev 输入指令:”sudo apt-get install g” -> “sudo apt-get install build-essential” -> “sudo apt-get i…

QT安装、构建套件(MSVC、MinGW)配置

QT安装、构建套件(MSVC、MinGW)配置 1. QT框架及QT Creator下载 登录QT官网-https://www.qt.io/download。 点击downloads for open source users 在页面最下方,点击Download the QT online Installer。 在安装网页的最下方处有一行小字 “We do recommend yo…

QT linux安装

转载地址:http://www.cnblogs.com/tangkaixuan/p/6504102.html 文章来自https://lug.ustc.edu.cn/sites/qtguide/ 1.4 Qt在Linux下安装 Qt在Linux系统里的安装要稍微复杂一些,因为Linux发行版众多,所以安装过程有些差异。 由于Linux系统都可…

Qt国内镜像安装

下载安装程序 https://download.qt.io/official_releases/online_installers/ 使用国内镜像打开安装程序 G:\下载\qt-unified-windows-x64-4.5.1-online.exe --mirror https://mirror.nju.edu.cn/qt清华源 https://mirrors.tuna.tsinghua.edu.cn/qt/online/qtsdkrepository/win…

Qt下载与安装

一、Qt和Qt Creator的区别 Qt是C的一个库,或者说是开发框架,里面集成了一些库函数,提高开发效率。 Qt Creator是一个IDE,就是一个平台,一个开发环境,类似的比如说VS,也可以进行Qt开发&#xff…

Ubuntu 安装QT

一、最近这家公司接到一个订单,客户使用到国产操作系统,意味着需要使用到 Linux 系统,于是乎,之前的东西又要捡起来,而且,平时代码主要是windows 平台,这次需要将代码移植到linux 平台&#xff…