SVM 公式推导

article/2025/9/13 7:03:39

1、SVM思想

(1)SVM算法的依据就是分类器B的分类间隔比分类器C的分类间隔大。这里涉及到第一个SVM独有的概念”分类间隔”。在保证决策面方向不变且不会出现错分样本的情况下移动决策面,会在原来的决策面两侧找到两个极限位置(越过该位置就会产生错分现象),如虚线所示。虚线的位置由决策面的方向和距离原决策面最近的几个样本的位置决定。而这两条平行虚线正中间的分界线就是在保持当前决策面方向不变的前提下的最优决策面。两条虚线之间的垂直距离就是这个最优决策面对应的分类间隔。显然每一个可能把数据集正确分开的方向都有一个最优决策面(有些方向无论如何移动决策面的位置也不可能将两类样本完全分开),而不同方向的最优决策面的分类间隔通常是不同的,那个具有“最大间隔”的决策面就是SVM要寻找的最优解。而这个真正的最优解对应的两侧虚线所穿过的样本点,就是SVM中的支持样本点,称为”支持向量”。
在这里插入图片描述
(2)理解:二维平面,两类不同的数据能找到一直线将其分割开,但此直线是可以有很多个方向的,SVM的核心思想就是先找两条极限位置的线(如图虚线),将两类数据划个边界(越过该位置就会产生错分现象),然后找出能使这两条虚线的间隔最大的方向,其中心平行线即为超平面,超平面经过的样本点即为支持向量

2、公式推导

(1)点到线的距离:

直线方程为Ax0+By0+C=0,点P的坐标为(x0,y0)
在这里插入图片描述

(2)决策方程:(超平面)

在这里插入图片描述
数据集:(X1,Y1)(X2,Y2)… (Xn,Yn)
Y为样本的类别: 当X为正例时候 Y = +1 当X为负例时候 Y = -1
(因为距离公式的分子是正的,所以乘上y_i,不论y_i取正一还是负一,y_i相乘y(xi)后都得到大于0的数)
在这里插入图片描述
得到转换的距离公式:(乘y_i即可去掉绝对值符号)
在这里插入图片描述

(3)目标函数:

在这里插入图片描述

  • A:
    i min:每个样本点都与超平面有一个距离,先通过min找出与超平面距离最小的点,即“支持向量”
    ii max:找出距离最小的点之后,再通过max求得使超平面与支持向量点间距最大的距离的w、b参数
    在这里插入图片描述
  • B :
    放缩变换(化简):(原式子由恒大于0变为恒大于1,变得更加严格,即切分的点要在超平面的正负1范围之外)
    在这里插入图片描述
  • C :
    最终化简式子:(有放缩变化得所求min的最小值为1),由此可得min的结果等于1;
(4)目标函数的求解:

所以当前目标变成了:
在这里插入图片描述
约束条件为:
在这里插入图片描述
要求解最大值,将问题转换为最小值的问题:
在这里插入图片描述

使用拉格朗日乘子法可以得到其“对偶问题”
这是拉格朗日对偶性,即,通过给每一个约束条件加上一个拉格朗日乘子。然后定义出拉格朗日函数,通过拉格朗日函数将约束条件融合进目标函数中。目的是,只需要通过一个目标函数包含约束条件,便可以清楚解释问题。
通过拉格朗日乘子法求解min:(不等式约束)
拉格朗日乘子法简单说就是:约束条件为g(x,y) 求f(x,y)的极值,需找到两函数相切的点,即为极值点(若不相切,则表示沿着g(x,y)切线的方向,还能使f(x,y)增长,所以还不是极值点)
其有三种类型:

  • 1、一个等式约束
  • 2、多个等式约束
  • 3、既有等式约束又有不等式约束
    在这里插入图片描述
    而这里的求解min,只有一个等式约束:
    在这里插入图片描述
    所以通过转换我们的目标函数得到:
    在这里插入图片描述
    为什么使用这样的拉格朗日乘子,又为何这样构建?这实际上是因为我们的目标函数是不等式约束,解这样的二次规划问题,我们选择用KKT条件,而KKT条件需要这样的一个约束 ai>0(拉格朗日乘子ai) 。最终我们便通过KKT条件来产生原问题的对偶问题,从而高效的求出结果。
    在这里插入图片描述
    应用KKT条件:(先完成第一步min的求解得出w、b)
    在这里插入图片描述
    (第二步求最大值)
    在这里插入图片描述
    求解例子:
    在这里插入图片描述
    在这里插入图片描述
    偏导:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    (w=a*y,当a等于0时,对超平面的方程是没有影响的,所以支持向量为a!=0的点)
    得到超平面方程

3、软间隔:

C通过交叉验证集选择合适的数
在这里插入图片描述
加入松弛因子,超平面不用分的很绝对

参数C决定松弛程度:
在这里插入图片描述
带参数松弛因子的求解:
在这里插入图片描述

手推公式:

在这里插入图片描述

min max和max min是有弱对偶关系的,但是原问题又是凸二次规划问题(二次规划:原问题是二次的,约束是线性的),所以min max和max min升级为强对偶关系
而原问题和对偶问题具有强对偶关系的充要条件就是KKT条件。
在这里插入图片描述
拉格朗日转换恒等的逻辑证明:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


http://chatgpt.dhexx.cn/article/4hO3eDQv.shtml

相关文章

机器学习笔记之十二——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…

QT的安装------QT

由于现在的qt都是线上下载了,那我们就去qt的官网下载 download.qt.io 我们选择倒数第二个------archive(档案),顺便学一下英文。 然后选择online install(在线安装) 身为先进人,当然选择最新的版本(团新版…