支持向量机(Support Vector Machine,SVM)是Corinna Cortes和Vapnik等于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。今天介绍的是由台湾大学林智仁(Lin Chih-Jen)教授等开发设计的一个简单、易于使用和快速有效的SVM模式识别与回归的软件包,他不但提供了编译好的可在Windows系列系统的执行文件,还提供了源代码,方便改进、修改以及在其它操作系统上应用,具体可以分为三类用途:分类问题、回归问题以及单类别分布问题进行介绍。
分类问题
SVM解决分类问题主要分为两种形式:C-SVC(C-Support Vector Classification)和
v
-SVC(
1.1 C-SVC(C-Support Vector Classification)
假设训练样本向量
xi∈Rn,i=1,2,....,l
,共两类,索引号
y∈Rl
,其中,
yi∈{−1,1}
,C-SVC的目标函数为:
minw,b,ξ12wTw+c∑ci=1ξi
s.t.
yi(wTϕ(xi)+b)⩾1−ξi
(1)
其中,
ϕ(xi)
为
xi
的高维映射,
c>0
为约束项,由于高维向量
w
,故将上述优化问题转化为对偶问题,将式(1)转化为式(2):
其中Q为
l∗l
的半正定矩阵,
Qi,j=yiyjk(xi,xj),k(xi,xj)=ϕ(xi)Tϕ(xj)
为高维核函数,
e=[1,...,1]T
,从而转化为求解
α
。
根据原始对偶关系,由求解的
α
得到权重向量
w
:
最终求得判决函数
sign(wTϕ(x)+b)=sign(∑li=1yiαiϕ(xi+b)
回归问题
而
ϵ−SVR
和
ν−SVR
是解决回归问题的模板类型
上述就是五中SVM模型,其实最终都是将目标函数转化成对偶形式求解,从而引入核函数,求解线性和非线性问题(上面公式太对Latex太费劲了,于是将笔记贴上去了,大家凑活看吧)
下面是性能衡量标准和解决二次优化问题的方法,至于二次优化问题,还没有继续深入,看了几天没有什么头绪,所以笔记中不再列举,请读者自行推导。
参考文献:
[1]C.-C. Chang and C.-J. Lin. LIBSVM : a library for support vector machines. ACM Transactions on Intelligent Systems and Technology, 2:27:1–27:27, 2011
LIBSVM问答区:http://www.csie.ntu.edu.tw/~cjlin/libsvm/faq.html
LIBSVM主页:https://www.csie.ntu.edu.tw/~cjlin/libsvm/