先简述SVM的基本概念,SVM有很多实现,我们只介绍其中最流行的一种,最小序列化SMO算法。在此之后,将介绍一种使用核函数的方式将SVM扩展到更多的数据集上。
1、基于最大间隔分隔数据:
优点:泛化错误率低,计算开销不大,结果易于解释;
缺点:对参数调节和核函数敏感,原始分类器不加修改仅适用于处理二分类问题;
适用数据类型:数值型和标称型数据。
上图中显示的是几个线性可分的数据,将数据集分开来的直线称为分隔超平面。由于上图中的数据点都在二维,所以此时分隔数据的平面就是一条直线,如果数据集是三维的,那么此时用来分隔数据的就是一个平面。更高维的以此类推。这个划分对象称为超平面,也就是分类的决策边界。分布在超平面一侧的所有数据都属于某个类别,而分布在另一侧的所有数据集则属于另一个类别。
我们用这种方法来构建分类器,如果数据点离决策边界越远,那么最后的预测结果也就越可信。上图中B C D三条直线都能将数据分隔开,那么哪种分隔效果最好呢?我们希望找到离分隔超平面最近的点,确保他们离分隔面的距离尽可能的远。这里点到分割面的距离成为 间隔。我们希望间隔尽可能的大。
支持向量 就是离分割超平面最近的点,接下来只要最大化支持向量到分割面的距离,需要找到此问题的优化求解方法。
2、寻找最大间隔
2.1、 分类器求解的优化问题
2.2、 SVM应用的一般框架
(1)收集数据: 任意方法;
(2)准备数据:数值型数据;
(3)分析数据:有助于可视化分超平面;
(4)训练算法:两个参数的调优;
(5)测试算法:十分简单的计算过程
(6)使用算法:几乎所有的分类问题都可以使用SVM。 SVM本身是一个二分类器。对于多类问题应用SVM需要对代码进行一些修改。