数据挖掘导论 福建医科大学 郑伟成
支持向量机 支持向量机(Support Vector Machine,SVM)是Corinna Cortes和Vapnik等于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。 在机器学习中,支持向量机(SVM,还支持矢量网络)是与相关的学习算法有关的监督学习模型,可以分析数据,识别模式,用于分类和回归分析。
什么是支持向量机SVM 支持向量机(SVM)是90年代中期发展起来的基于统计学习理论的一种机器学习方法,通过寻求结构化风险最小来提高学习机泛化能力,实现经验风险和置信范围的最小化,从而达到在统计样本量较少的情况下,亦能获得良好统计规律的目的。 通俗来讲,它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,即支持向量机的学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。
线性分类 在讲SVM之前,必须先弄清楚一个概念:线性分类器算法 考虑一个两类的分类问题,数据点用 x 来表示,这是一个 n 维向量,w^T中的T代表转置,而类别用 y 来表示,可以取 1 或者 -1 ,分别代表两个不同的类。一个线性分类器的学习目标就是要在 n 维的数据空间中找到一个分类超平面,其方程可以表示为
分类超平面 一个二维平面(一个超平面,在二维空间中的例子就是一条直线),如下图所示,平面上有两种不同的点,分别用两种不同的颜色表示,一种为红颜色的点,另一种则为蓝颜色的点,红颜色的线表示一个可行的超平面。
分类超平面 从上图中我们可以看出,这条红颜色的线把红颜色的点和蓝颜色的点分开来了。而这条红颜色的线就是超平面,也就是说,这个超平面把这两种不同颜色的数据点分隔开来,在超平面一边的数据点所对应的 y 全是 -1 ,而在另一边全是 1
应用超平面进行分类 应用分类函数 显然,如果 f(x)=0 ,那么 x 是位于超平面上的点。我们不妨要求对于所有满足 f(x)<0 的点,其对应的 y 等于 -1 ,而 f(x)>0 则对应 y=1 的数据点。
分类超平面
非线性可分 对于图示数据,无法找到一个二维超平面进行正确分类
线性不可分的高纬解
支持向量 可以看到两个支撑着中间间隔的超平面,它们到中间的纯红线到两个分割平面的距离相等,即我们所能得到的最大的几何距离,而“支撑”这两个超平面的必定会有一些点,而这些“支撑”的点便叫做支持向量Support Vector。
支撑点 很显然,由于这些 supporting vector 刚好在边界上,所以它们满足 (Y的取值为1或-1) 那么支持向量机的分类过程,就是找到这些支撑点过程,通过求解WT与B,学习建立分类器
核函数 简而言之:在线性不可分的情况下,支持向量机通过某种事先选择的非线性映射(核函数)将输入变量映射到一个高维特征空间,在这个空间中构造最优分类超平面。我们使用SVM进行数据集分类工作的过程首先是同预先选定的一些非线性映射将输入空间映射到高维特征空间
映射到高纬空间 当出现线性不可分的情况,利用核函数隐射到高纬空间,使之线性可分
几个核函数 多项式核 高斯核
核函数用途
SVM核函数应用例子