支持向量机(support vector machines,SVM) 是一种二分类模型。
他与感知机的区别在于:SVM是定义在特征空间上的间隔最大的线性分类器。对于线性可分的数据,感知机找到的超平面个数是不唯一的,如下图a。而满足SVM的超平面有且只有一个,如下图b。SVM引入核函数,使得他可以解决非线性可分的问题。而感知机只能解决线性可分问题。SVM可以理解为是升级版的感知机。
SVM主要有以下几种类别:
(1)线性可分支持向量机
当训练数据线性可分时,通过硬间隔最大化得到的分类器。
(2)线性支持向量机
当数据近似线性可分时,通过软间隔最大化得到的分类器。
(3)非线性支持向量机
当数据线性不可分时,通过使用核技巧以及软间隔最大化得到的分类器。
SVM的求解算法:序列最小最优(SMO)算法
SVM特点:
(1)SVM模型训练完成后,依赖于少数的支持向量进行预测,预测速度快。同时也说明该模型易受边界点影响。
(2)从工程的角度来说:样本比较多的时候,Boosting和RF往往能得到最好的效果,但是数据集较少的时候,SVM的效果可能会比较好。