我是靠谱客的博主 瘦瘦画笔,最近开发中收集的这篇文章主要介绍SVM算法总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.线性可分支持向量机与硬间隔最大化

我们的目标是通过一个超平面以最大置信度将两类样本分开。

首先定义一个超平面:w*x+b=0,其中w是法向量,x是样本的特征向量,b是截距。

为了使分类置信度最大,我们需要最大化离超平面最近的样本与超平面的距离,这里需要用到函数间隔和几何间隔的概念。

函数间隔:y*(w*x+b)

几何间隔 = (1 / ||w||) * 函数间隔,几何间隔即样本与超平面距离的最小值。

函数间隔的取值并不影响超平面的位置,因此为了简单起见,我们将函数间隔设为1,那么几何间隔就是1 / ||w||.

要最大化几何间隔,也就是最小化1/2 * ||w|| * ||w||(之所以写成平方的形式是为了后续求导的方便),同时满足约束条件:每个样本与超平面的函数间隔大于等于1。

以上带约束条件的最大化几何间隔的问题又叫做最优化问题,还是一个凸二次规划问题,求解该问题,得到w*和b*,也就得到了超平面方程,进而得到分类决策函数。

上述方法称为最大间隔法。

还有另外一种方法,这种方法并不直接求解以上凸二次规划问题(原始问题),而是将这个问题转化为拉格朗日对偶问题,然后求对偶问题的最优解α*,通过α*,求得原始问题的w*和b*,然后得到分类决策函数。这个分类决策函数需要计算输入向量x和训练向量xi的内积,这是后续引入基于核函数的非线性支持向量机的前提。


2.线性支持向量机与软间隔最大化

线性可分问题是最简单的,现实中我们往往遇到的是线性不可分问题,线性不可分问题又分为两种情况,一种是近似线性可分,另一种是完全线性不可分,针对这两种情况,分别引入了软间隔最大化的线性支持向量机和基于核函数的非线性支持向量机。

近似线性不可分,是指大量样本线性可分,只有少数几个样本线性不可分,如果仍然按照硬间隔最大化方法设计SVM分类器,分类器会构造失败。为解决这个问题,为每个样本引入了一个松弛变量,允许样本与超平面的函数间隔小于1,同时,由于松弛变量会影响分类精度(所有样本松弛变量的和越大,分类精度越差),因此,在最优化问题的目标函数中又加了一个惩罚项:C*所有松弛变量之和,其中C为惩罚因子。最优化问题的约束条件变为每个样本与超平面的函数间隔大于等于1减去松弛变量,同时每个松弛变量大于等于0。

上述最优化问题仍然是凸二次规划问题,因此可以求解。求解的方法仍是引入拉格朗日算子,然后求对偶问题的解。最后求得的解的表达形式与硬间隔最大化的方法类似,不过b有多个解(可以取所有解的平均值)。


3.非线性支持向量机与核函数

至于完全线性不可分定位情况,这里用到了一条性质:低维空间线性不可分的可以通过映射到高维空间实现线性可分。我们在低维空间得到的最终的分类决策函数需要计算的是输入向量和训练向量的内积,如果映射到高维空间,那么只需要计算高维空间中的向量内积,这个内积可以通过低维空间下的核函数来计算。因此,对于完全线性不可分问题,只要把分类决策函数中的向量内积替换为核函数,问题就转换为线性可分,可以直接使用这个决策函数来做非线性问题的分类!

核函数的选择大多依靠经验和试选,径向基核函数在大多数情况下表现不错。



4.SVM补充

核函数用来描述两个样本之间的相似度,如果样本的数目是m,那么核矩阵的维度是m*m,样本数目大的时候,系统开销非常大。

svm分类的过程,可以认为是在判断样本与所有类之间的加权的相似程度,将样本归类为相似度大的类。

svm训练时,迭代次数越少,训练时间越少,支持向量越少,说明样本和特征选择的越好,越容易分类。

svm有一种通过增加样本提高精度的方法:选取那些离分类超平面距离比较近的样本。

权值w是训练样本的线性组合,也可以认为是支持向量的线性组合,因为非支持向量的权值为0。

liblinear的model保存的是每个线性分界面的参数w,没有保存支持向量,libSVM的model保存了支持向量。

svm的分界面是核函数映射后的高维空间中的线性分界面在低维特征空间的投影。



最后

以上就是瘦瘦画笔为你收集整理的SVM算法总结的全部内容,希望文章能够帮你解决SVM算法总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部