机器学习笔记-支持向量机
支持向量机(SVM)是90 年代中期发展起来的基于统计学习理论的一种机器学习方法,通过寻求结构化风险最小来提高学习机泛化能力,实现经验风险和置信范围的最小化,从而达到在统计样本量较少的情况下,亦能获得良好统计规律的目的。算法的详细介绍可以参考wiki。
SVM是一种分类算法,首先,它是一种监督式学习,也就是说,先得给出一部分的训练数据。通过对训练数据训练后得到一个边界线,然后将数据导入,看他们会处于这个边界线的哪一边,实现分类。对于一个2维点的集合,我们的目标就是用一个1维的面(线)来划分开。
假如在一个直角坐标系中,有若干个点,怎么把这些点划分开呢,我们假定有一个直线f(x)=ax+b,如果f(x)>0,是一类,<0则是另一类,这样就分开了。问题转变成,对于这些点,求这个直线的函数,也就是求a和b的值。
在阿里云中,实现的算法是线性支持向量机,仅支持二分类。它不是采用核函数方式实现的,具体实现理论详见:http://www.csie.ntu.edu.tw/~cjlin/papers/logistic.pdf 中的6. Trust Region Method for L2-SVM;本算法仅支持二分类。
在这篇《程序员训练机器学习SVM算法分享》的文章(原文网址)里,有一些基于Python的SVM代码。
《支持向量机通俗导论(理解SVM的三层境界)》,文章的PDF版为:支持向量机通俗导论(理解SVM的三层境界)Latex版