SVM非常清晰的实现步骤与白话原理

简介: 笔记

SVM详细笔记,由浅入深,非常全面

第一部分,SVM简介

SVM的中文名字叫做支持向量机,是求解凸二次规划的最优算法。

SVM学习方法包括:线性可分支持向量机、线性支持向量机、非线性支持向量机,分别对应着训练数据线性可分,近似线性可分和线性不可分三种情况。

当输入数据线性不可分时,可以通过核函数将数据映射到更高维的空间中,使其变成线性可分的。

SVM百度百科.

第二部分 线性支持向量机

定义:对于给定的线性可分数据集,通过间隔最大化或者等价地求解相应的凸二次规划问题学习得到的分离超平面为:

w ∗ x + b = 0


(ps:在w,b能满足所有数据被分类正确的情况下,离超平面距离最近的点的距离要最大,也就是说,不仅仅只是要分类正确,而且在所有分类正确的情况下,离超平面距离最小的那个的值要最大)。


分类决策函数为:

f(x)=sign(w∗x+b)


可以用∣ w ∗ x + b ∣表示点x离超平面的距离,而w ∗ x + b的符号与y 的符号是否一致表示分类是否正确,所以可以用y ( w ∗ x + b ) 表示分类的正确性以及点离超平面的距离,叫做函数间隔,这样就去掉了绝对值。最后求解的函数为:

γ i = y i ( w ∗ x i + b )

要注意的一个问题的是,如果w b成倍的增加的话,超平面并没有发生改变,但是点离超平面的距离却变成为原来的两倍,所以我们需要对超平面的法向量w 加一些约束条件,使得距离是确定的。


几何间隔,定义:对于给定的训练集T和超平面(w,b)

定义超平面(w,b)关于样本点( x i , y i )的几何间隔为

γ i = y i / ∣ ∣ w ∣ ∣ ( w ∗ x i + b )

这里令y i ( w + x i + b ) = 1最后要求解的函数变成


min ~1/2||w||^2


s . t .      y i ( w ∗ x i + b ) − 1 ≥ 0


6.在上面的函数中,求解时,并不是那么的容易,这里引入对偶算法,一是对偶问题往往跟容易求解,二是自然引入核函数,进而推广到非线性分类问题。


首先构造拉格朗日函数:

L ( w , b , α ) = 1 / 2 ∣ ∣ w ∣ ∣ 2 − Σ α i y i ( w ∗ x i + b ) + Σ α i

原始问题的对偶问题是极大极小问题max minL(w,b,α)

其核心有一些几点:

1. max min ,最小最大

2.点到超平面距离的假设

3.拉格朗日乘子法在约束条件下求解最优问题

4.优化问题的对偶性

这里说一下第四点,白话:最大值里面的最小值肯定比最小值里面的最大值大。

接下来总结一下实现步骤:


假设存在一个超平面 ,表示每个样本点到平面的距离为D (这里加了绝对值)

假设正样本为+1,负样本为-1。D<0,label = -1;D>0,label = +1; (这里D没有加绝对值)

去掉第一步D的绝对值,根据第二步可知,D * label > 0 ;

求解距离平面最小的点中,最大的那个。(每一次都会产生一个平面,也就是说每一次最小的点中,距离平面的值最大的那个点)

特征缩放 D *label >0,将其假设为 D *label > 1,便于计算

得到目标函数,利用拉格朗日乘子法,利用对偶性 ,求解问题。

分别对w,b求导,代入原式,然后代入数据后,对拉格朗日算子求导,然后令其为0。

求解算子,然后回算出w,b,得到该超平面。

上面就是一个最简单的svm实现的具体步骤,里面还需要注意一下细节,不如一些约束条件我没有写进去,在下面的公式中,我会列出来,在计算出值后,还要注意看看满不满足约束条件。

image.jpeg

thank for your time !!

公众号:FPGA之旅

目录
相关文章
|
2月前
|
机器学习/深度学习 人工智能 算法
模型无关的局部解释(LIME)技术原理解析及多领域应用实践
在当前数据驱动的商业环境中,人工智能(AI)和机器学习(ML)已成为各行业决策的关键工具,但随之而来的是“黑盒”问题:模型内部机制难以理解,引发信任缺失、监管合规难题及伦理考量。LIME(局部可解释模型无关解释)应运而生,通过解析复杂模型的个别预测,提供清晰、可解释的结果。LIME由华盛顿大学的研究者于2016年提出,旨在解决AI模型的透明度问题。它具有模型无关性、直观解释和局部保真度等优点,在金融、医疗等领域广泛应用。LIME不仅帮助企业提升决策透明度,还促进了模型优化和监管合规,是实现可解释AI的重要工具。
110 9
|
8天前
|
存储 算法 决策智能
《C 语言下模拟退火算法于组合优化的应用要点全解析》
组合优化问题是计算机科学与数学的交叉领域中的研究热点。模拟退火算法作为一种基于概率的随机搜索方法,通过模拟固体退火过程,能够在解空间中高效寻找全局最优或近似最优解。本文探讨了用C语言实现模拟退火算法的关键步骤,包括算法原理、数据结构设计、温度参数控制、邻域生成与搜索策略、接受准则、终止条件及性能评估与调优,旨在为解决组合优化问题提供有效途径。
52 11
|
2月前
|
移动开发 算法 前端开发
前端常用算法全解:特征梳理、复杂度比较、分类解读与示例展示
前端常用算法全解:特征梳理、复杂度比较、分类解读与示例展示
30 0
|
4月前
|
数据挖掘 Python
【Python数据分析】假设检验的基本思想、原理和步骤
文章详细介绍了假设检验的基本思想、原理、可能犯的错误类型、基本步骤以及在不同总体情况下的检验方法,阐述了如何在Python中应用假设检验,并通过P值来判断假设的可靠性。
72 1
|
6月前
|
数据可视化 算法 大数据
深入解析高斯过程:数学理论、重要概念和直观可视化全解
这篇文章探讨了高斯过程作为解决小数据问题的工具,介绍了多元高斯分布的基础和其边缘及条件分布的性质。文章通过线性回归与维度诅咒的问题引出高斯过程,展示如何使用高斯过程克服参数爆炸的问题。作者通过数学公式和可视化解释了高斯过程的理论,并使用Python的GPy库展示了在一维和多维数据上的高斯过程回归应用。高斯过程在数据稀疏时提供了一种有效的方法,但计算成本限制了其在大数据集上的应用。
352 1
|
6月前
|
机器学习/深度学习 XML 移动开发
详尽分享高斯过程简单理解
详尽分享高斯过程简单理解
60 0
|
7月前
|
数据采集 数据可视化
利用R语言进行因子分析实战(数据+代码+可视化+详细分析)
利用R语言进行因子分析实战(数据+代码+可视化+详细分析)
|
机器学习/深度学习 算法 决策智能
最大熵图像复原方法原理(附完整代码)
最大熵图像复原方法原理(附完整代码)
232 0
|
算法 Java 测试技术
我的算法基础实验代码-下篇
算法题目,Java语言版
80 0