SVM-及SMO算法实现报告
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
维空间的非线性映射;
(2)对特征空间划分的最优超平面是SVM的目标,最大化分类边际的思
想是SVM方法的核心;
(3)支持向量是SVM的训练结果,在SVM分类决策中起决定作用的是支
持向量。因此,模型需要存储空间小,算法鲁棒性强;
(4)无序任何前提假设,不涉及概率测度;
(1) SVM算法对大规模训练样本难以实施
SVM 算法与实现
2011 – 11 -18
报告内容
SVM简介
求解算法-SMO优化算法
多分类问题
系统演示
A+
Ax 0w = í à 1 0 Separating Surface: x w = í
w
SVM算法特点
SVM有如下主要几个特点:
(1)非线性映射是SVM方法的理论基础,SVM利用内积核函数代替向高
例如,当训练点数目超过4000时,存储核函数矩阵需要多达128兆。
求解方法:坐标上升法
min
a l 1 l l y i y j i j K ( x i , x j ) i 2 i 1 j 1 i 1
固定除 i 之外的所有参数,这时W可看作只是关于 i 的函数,那么直接对 i
l
s.t.
y
i 1 i
l
ቤተ መጻሕፍቲ ባይዱ
i
0
x,y为已知数
核函数
线性不可分的情况
我们可以为分错的点加上一点惩罚,对一个分错的点的惩罚函数就是
这个点到其正确位置的距离:
软间隔C-SVM
C是一个由用户去指定的系数,表示对分错的点加入多少的 惩罚,当C很大的时候,分错的点就会更少,但是过拟合的 情况可能会比较严重,当C很小的时候,分错的点可能会很 多,不过可能由此得到的模型也会不太正确
软支持向量机求解
构造拉格朗日公式:
求偏导数:
求解问题
数据集合:
T {( x1, y1 ),...,( xl , yl )} (Rn y)l
xi Rn , yi Y {1,1}, i 1,...,l
优化目标:
max
a
1 l l i yi y j i j K( xi , x j ) 2 i 1 j 1 i 1
我们怎样才能取得一个最优的划分直线f(x)呢?
最大距离Maximum Marginal
选择使得间隙最大的函数作为分割平面是由很多道理的,比如说从概
率的角度上来说,就是使得置信度最小的点置信度最大(听起来很拗 口),从实践的角度来说,这样的效果非常好,等等。
最大距离
(x,y) M
M
wx+b=1 f(x)=wx+b=0 wx+b=-1
求导优化即可。
可以通过更改优化顺序来使W能够更快地增加并收敛。 如果W在内循环中能够很快地达到最优,那么坐标上升法会是一个很高效的
求极值方法。
问题提出
线性可分的分类问题:(令黑色的点 = -1, 白色的点 =
+1)
f ( x) wr x b
+1 -1
所以当有一个新的点x需要预测属于哪个分类的时候,我们用sgn(f(x)),
就可以预测了,sgn表示符号函数,当f(x) > 0的时候,sgn(f(x)) = +1, 当f(x) < 0的时候sgn(f(x)) = –1。
l
s.t.
y
i 1 i
l
i
0
i 1,...,l
0 i C,
其中C为人为设定,x,y为已知数
问题?
实际上在处理大型问题时,由于存储和计算两方面的要求,这些算法
往往会失效。
这些算法都要存储与训练集相应的核矩阵,然而存储核矩阵所需要的
内存是随着训练集中训练点数L的平凡增长的。
(2) 用SVM解决多分类问题存在困难
经典的支持向量机算法只给出了二类分类的算法,而在数据挖掘的实际应用中,一
般要解决多类的分类问题。可以通过多个二类支持向量机的组合来解决。主要有一 对多组合模式、一对一组合模式和SVM决策树;再就是通过构造多个分类器的组合 来解决。主要原理是克服SVM固有的缺点,结合其他算法的优势,解决多类问题的 分类精度。如:与粗集理论结合,形成一种优势互补的多类问题的组合分类器。
f ( x, y ) w w f ( x, y ) w w 1 w w
M
目标函数: 等价于: 因为 w 单调, : 并且为了计算方便
max 2M
2 w
min
min
w
1 w 2
2
求解问题
数据集合:
T {( x1, y1 ),...,( xl , yl )} (Rn y)l
w ,b a
f ( x) max min
a w ,b
f ( x)
求解
将两式带回L(w,b,a)得到对偶问题的表达式
1 2 L(w, b, a) w ai ( yi (w xi b) 1) 2 1 L(w, b, a) ai yi xi a j y j x j ai yi w xi ai yi b ai 2 i, j
求解问题
数据集合:
T {( x1, y1 ),...,( xl , yl )} (Rn y)l
xi Rn , yi Y {1,1}, i 1,...,l
优化目标:
max
a
1 l l i yi y j i j K( xi , x j ) 2 i 1 j 1 i 1
由于SVM是借助二次规划来求解支持向量,而求解二次规划将涉及m阶矩阵的计算
(m为样本的个数),当m数目很大时该矩阵的存储和计算将耗费大量的机器内存
和运算时间。针对以上问题的主要改进有有J.Platt的SMO算法、T.Joachims的 SVM、C.J.C.Burges等的PCGC、张学工的CSVM以及O.L.Mangasarian等的SOR 算法
xi Rn , yi Y {1,1}, i 1,...,l
1 w 2
2
优化目标:
min
s.t.
w xi b 1, yi 1 w xi b 1, yi 1
x,y为已知数
求解
建立拉格朗日公式:
求偏导数:
求解:对偶问题
min max