一、简介
SVM被有的人认为是目前最好的现成(现成是指分类器不加修改即可直接使用)的算法之一,这意味着在数据上应用基本形式的SVM分类器就可以得到低错误率的结果。SVM能对训练集之外的数据点做出很好的分类决策。
二、概念解释
- 分隔超平面:即分类的决策边界,分布在超平面一侧的所有数据都属于某个类别,而分布在另一侧的所有数据则属于另一个类别。
- 构建分类器:数据点离决策边界越远,那么其最后的预测结果也就越可信。
- 找到离分隔超平面最近的点,确保它们离分隔面的距离尽可能远。这里点到分隔面的距离被称为间隔。希望间隔尽可能地大,这是因为如果犯错或者在有限数据上训练分类器的话,希望分类器尽可能健壮
- 支持向量就是离分隔超平面最近的那些点。目标:最大化支持向量到分隔面的距离,找到此问题的优化求解方法。
三、寻找最大间隔
- 分类器输出结果为”+1“和”-1“(即label标签的值),虽然有正负区别,但在最终计算数据点到分隔面的距离时,值都是正的,即可以通过一个统一公式来表示间隔或者数据点到分隔超平面的距离,同时不必担心数据到底是属于“-1”类还是“+1”类。
- 间隔通过label * (wTx+b)来计算,因为label取值”-1”、”+1”,所以如果数据点处于正方向(即+1类)并且离分隔超平面很远的位置时wTx+b会是一个很大的正数,同时label * (wTx+b)也会是一个很大的正数;如果数据点处于负方向(-1类)并且离分隔超平面很远的位置时,此时由于类别标签为-1(即label=-1),label * (wTx+b)仍然是一个很大的正数。采用-1和+1来进行分类能够方便数学上的处理。
- SVM应用:
- SVM的大部分时间都源自训练,该过程主要实现两个参数的调优
- 几乎所有的分类问题都可以使用SVM,SVM本身是一个二分类器,对多类问题应用SVM需要对代码做一些修改。
四、SMO高校优化算法
- SMO算法表示序列最小化,它是将大优化问题分解为多个小优化问题来求解,这些小优化问题往往容易求解,并且对它们进行顺序求解的结果与将它们作为整体来求解的结果是完全一致的。在结果完全相同的同时,SMO算法的求解时间短很多。(有点像分治啊!!!)
- SMO算法的目标是求出一系列的alpha和b,一旦求出了这些alpha,就很容易计算出权重向量w并得到分隔超平面
- SMO算法的工作原理是:每次循环中选择两个alpha进行优化处理。一旦找到一对合适(合适是指两个alpha必须要在间隔边界之外并且没有进行过区间化处理或者不在边界上)的alpha,那么就增大其中一个同时减小另一个。

SVM是一种优秀的现成分类算法,能够对未知数据进行准确分类。它通过寻找最大间隔来确定最佳决策边界,支持向量是最接近边界的样本点。SMO算法有效解决了SVM训练过程中的优化问题。
1690

被折叠的 条评论
为什么被折叠?



