首页 > 代码库 > 机器学习实战笔记6(SVM)

机器学习实战笔记6(SVM)

鉴于July大哥的SVM三层境界(http://blog.csdn.net/v_july_v/article/details/7624837)已经写得非常好了,这里我就不详细描述,只是阐述简单的几个概念。如果看SVM三层境界有困惑,我也愿意与大家交流,共同进步。

简单概念描述:

(1)      支持向量机(SVM, support vectormachine)就是通过最大化支持向量到分类超平面之间的分类间隔。分类超平面就是我们想要得到的决策曲面;支持向量就是离分类超平面最近的点,而间隔即为支持向量到分类超平面的距离。

(2)      核函数:通常大家说核函数的作用是将数据由低维空间映射到高维空间,线性不可分变得线性可分。这句话的意思用个简单的例子来说明:比如a1*x1^2 +a2*x2^2+a3*x1x2 = 0,此时我们令z1=x1^2, z2=x2^2, z3=x1x2,这样就由原来的二维映射到三维空间了,而此时也变得线性可分了,对应的映射函数用P来表示。而核函数的作用是在求解svm时,经常需要计算内积<p(x1),p(x2)>,但是在高维空间中计算内积往往比较复杂,有时可能出现维数灾难,此时我们就可以使用核函数来解决这个问题。如果还是看不懂,可以看July大哥blog中第二层核函数的例子。

注意:(1)SVM是现成最好的分类器,这里“现成”指的是分类器不加修改即可直接使用。

(2)SVM的实现方法有很多,最常用的就是序列最小最优化算法(SMO,sequentialminimal optimization)

(3)几乎所有的分类问题都可以使用SVM,但值得一提的是,SVM本身是一个二值分类器,对多类分类问题应用SVM需要对代码做一些修改。

(4)支持向量机是一种分类器。之所以称为“机”是因为它会产生一个二值决策结果,即它是一种决策“机”。