支持向量机


支持向量机是数据挖掘中的一项新技术,是借助于最优化方法来解决机器学习问题的新工具,最初由 V.Vapnik 等人提出,近几年来在其理论研究和算法实现等方面都取得了很大的进展,开始成为克服“维数灾难”和过学习等困难的强有力的手段,它的理论基础和实现途径的基本框架都已形成。

其主要思想:找到一个超平面,使得它能够尽可能多地将两类数据点正确分开,同时使分开的两类数据点距离分类面最远。

支持向量机的基本原理

支持向量机

线性可支持向量分类机

支持向量机
其中 N+ 表示 +1类样本集中样本点的个数, N− 表示 −1类样本集中样本点的个数。

定理1
训练集T 线性可分的充要条件是,T 的两类样本集 M+ 和 M- 的凸包相离。如下图所示(定理 1 给出了训练集T 线性可分与两类样本集凸包之间的关系。)
支持向量机
定理2
支持向量机

线性支持分类机

支持向量机
支持向量机
软化的方式是通过引入松弛变量(具体略)

可分支持向量分类机

支持向量机
支持向量机
支持向量机

C-支持向量分类机

当映射到高维 H 空间的训练集不能被硬性分划时,需要对约束条件进行软化。结合前面所讲,可以得到一下模型:
支持向量机
当输入空间中两类样本点的分布区域严重重合时,选择合适的核函数及其参数,可以使映射到特征空间的每一类样本点的分布区域更为集中,降低两类样本点分布区域的混合程度,从而加强特征空间中两类样本集“线性可分”的程度,来达到提高分类的精度和泛化性能的目的。
但是就核函数及其参数的选取问题,目前尚无理论依据,同样的实验数据,采用不同的核函数,其精度往往相差很大,即便是对于相同的核函数,选取的参数不同,分类的精度也会有较大的差别。

在实际应用过程中,往往针对具体的问题多次仿真试验,找到适合该问题的核函数,并决定其最佳参数。

支持向量机的Matlab命令及应用例子

Matlab中支持向量机的命令有,训练支持向量机分类器的函数svmtrain,支持向量机分类函数svmclassify,指定支持向量机函数使用的序列最小化参数函数svmsmoset。

e.g.乳腺癌诊断(模式识别问题)
支持向量机

模式识别的方法很多,除了支持向量机,还有数理统计方法、聚类分析等方法。