SVM(支持向量机)算法介绍

最近正好有时间将SVM的推导整理一遍,借此文章记录自己的学习过程, 在本文中借鉴了T老师的讲义和一些博文,以及李航的统计学习方法,若有不足之处,望海涵。

SVM

svm算法通俗的理解在二维上,就是找一分割线把两类分开,问题是如下图三条线都可以把红色点和黄色点分开,但哪条线是最优的呢?如果数据本身比较难分怎么办?这都是我们要考虑的问题。 

 

 

决策边界:选出离样本点最远的线段。

我们需要让距离决策边界最近的点之间的距离最远。

1.距离的计算

 x' x"所在平面的表达式为:W^{^{t}}X + b = 0 ,其中,W为平面的法向量。

我们需要求得x到平面的距离dist(x, h), 那么我们只要求得xx'的距离, 然后对平面做竖直方向上的投影(既点x到平面的距离)即可。计算过程如下:

然后得到距离公式: 

2.数据标签定义

 

3. SVM的优化目标

我们需要找到一条线(w和b),使得离该线段最近的点之间的距离最远,由上面的距离公式和数据的决策方程我们可以得出:

点到直线的距离为:

进而得到优化目标:

决策方程(w,b)可以进行放缩变换,使得其结果值|y|>=1:

 

4. 优化目标的求解

将目标函数进行转换:求最值大问题即求倒数最小值问题, 加入常数不影响(方便求导)

然后利用拉格朗日乘子法对其进行求解。

拉格朗日乘子法:

 

将我们需要求解的目标函数和约束条件通过拉格朗日进行计算:得到

多了个参数\alpha _{_{i}}

 把上式获取的参数代入公式优化max值:

化解到最后一步,就可以获取最优的a值:

求正数最大值,相当于求负数的最小值。

以上就可以得到了超平面。

 

 

 

SVM支持向量机算法是一种用于分类和回归分析的机器学习算法。它的核心思想是寻找一个最优的超平面来将样本数据分割成不同的类别。超平面被定义为在n维空间中的一个n-1维子空间,其中n是属性的数量。 在SVM算法中,样本被表示为特征向量,每个特征向量都对应于一个在n维空间中的点。这些点被分为两个类别,目标是找到一个超平面,使得不同类别的样本点尽可能远离超平面,从而实现最大间隔。这些样本点中距离超平面最近的点被称为支持向量,它们对于确定超平面起到重要的作用。 SVM算法的关键是通过求解一个优化问题来找到最优的超平面。这个问题可以被转化为一个凸优化问题,通过拉格朗日乘子法可以得到其对偶形式的求解方法。通过求解对偶问题,可以得到最优的超平面参数,从而实现对新样本的分类。 需要注意的是,SVM算法是一种二分类算法,但它也可以通过一些扩展方法来处理多分类问题。其中一种常用的方法是使用“一对多”策略,将多个二分类器组合成一个整体分类器。 总结来说,SVM支持向量机算法是一种用于分类和回归分析的机器学习算法,通过寻找一个最优的超平面来将样本数据分割成不同的类别。它的核心思想是最大化不同类别样本点与超平面的间隔,并通过求解一个凸优化问题来得到最优的超平面参数。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值