基本介绍
在机器学习众多算法中支持向量机算法被广大使用者称为通用的算法,通常在使用模型进行训练的时候,可以首先考虑使用支持向量机来训练样本数据。该算法是根据支持向量(Support Vector)来确定超平面,从而对样本进行分类或回归预测,因而得名支持向量算法,使用支持向量机这个名称可能是因人们的习惯。
支持向量机算法已经在很多领域如分本文类,图像分类,数据挖掘,手写字符识别等领域大显生手,且其可应用领域还远远不止这些。
本打算对自己认识的支持向量机算法做个简介,但发现有大牛已经把这部分理论内容说的很透彻,在此就不想班门弄斧。本文主要从应用角度介绍该算法,介绍如何从Scikit-Learn中调用和参数调试,具体的理论和公式推导将会附上大牛的原著。
算法名词
支持向量机算法
官方简介这是一种监督学习方法,用于分类,回归和异常点的检测。弄清算法基本原理需要知道最大间隔原则,对偶表示和KKT条件
支持向量
对数据样本进行分隔时,支撑分割的线或平面上的点即为支持向量,如图1 虚线间隔边界上点则是支持向量。
图1 支持向量
超平面
如图1,我们很容易找到一条分类线,但如何确定这条分类线呢?图中我们看到两组样本都有离分割线很近的点,当我们找到两组样本中最近点到分割线距离最大的时候,这样我们就可以确定这个分割线。若是在三维空间,此处的分割线将会变成一个分割面,我们称这个分割面为超平面。
核函数
支持向量机算法分类和回归方法中都支持线性和非线性类型的数据类型。非线性类型通常在二维平面不可分,为了使数据可分,需要通过一个函数将原始数据映射到高维空间,从而使得数据在高维空间可以很容易区分,这样就达到数据分类或回归的目的,而实现这一目标的函数称为核函数。
算法优缺点
优点 –在高维空间行之有效
--当维数大于样本数时仍然可用(此时的效果不理想)
--在决策函数中只使用训练点的一个子集(支持向量),大大节省了内存开销
--用途广泛