SVM支持向量机学习笔记

353 阅读2分钟

SVM支持向量机

SVM是一种二分类模型,在特征空间上的间隔最大的线性分类器,SVM的学习策略就是间隔最大化。

svm.jpg

图中有二维数据点和三条直线。若三条直线代表三个分类器,直观上哪一个更好?

直观感受为H3。首先,H1不能将类别分开,H2可以,但分割线与最近数据点间隔太小,如果测试数据有些噪声,可能就会被错误分类。而H3以较大的间隔将它们分开,就能容忍一些测试数据的噪声,是一个泛化能力不错的分类器。

对于支持向量机来说,数据点若是p为向量,我们用p-1维的超平面来分开这些点。那么什么是超平面呢?超平面实际上就是维度大于3的平面。

我们知道AX+BY+CZ+D=0可以表示一个二维的平面,那么超平面.jpg表示一个超平面wT表示平面上的法向量,x表示平面上的点,b代表超平面到圆点的距离。点到超平面的距离和点到平面距离公式类似,带入x的值除以wT的模长即可。

关于超平面与间隔

margin.jpg

将大于等于1的划为一类,小于1的划为一类。最大间隔超平面是位于他们正中间的超平面。

硬间隔:严格可分,找到一个超平面使其能正确将每个样本正确分类。

软间隔:允许SVM在样本上少量出错,将之前的硬间隔最大化条件放宽一点。

非线性:利用核技巧,将线性模型推广到非线性模型。

核函数:使用一个变换将原空间的数据映射到新空间;然后在新空间里用线性方法从训练数据中学习得到模型。

支持向量机简单来说就是wx+b=1,wx+b=-1以及wx+b=0可以表示任意的三个相邻距离相等的

超平面。SVM就是在找这三个超平面对应的w和b。

支持向量机的优点:

1.SVM是一个凸优化问题,所求的解一定是全局最优

2.不仅使用与线性问题还适用于非线性问题(核技巧)

3.拥有高维样本空间的数据也能用SVM,这是因为数据集的复杂度只取决于支持向量而不是数据集的维度,这在某种意义上避免了“维数灾难”

4.理论基础较为完善

支持向量机的缺点:

1.二次规划问题求解涉及m阶矩阵的计算,因此SVM不适用于超大数据集。

2.只适用于二分类问题。