SVM--支持向量机简述

来源:互联网 发布:杜兰特里约奥运会数据 编辑:程序博客网 时间:2024/05/19 17:27

此文是根据July大神所写的支持向量机通俗导论(理解SVM的三层境界)一文的读后感,记录下自己的一点感悟与体会。

SVM 它本质上即是一个二分类方法,用wT+b 定义分类函数,于是求w、b,为寻最大间隔,引出1/2w2,继而引入拉格朗日因子,化为对拉格朗日乘子α的求解(求解过程中会涉及到一系列最优化或凸二次规划等问题),如此,求w、b 与求α 等价,而α的求解可以用一种快速学习算法SMO,至于核函数,是为处理非线性情况,若直接映射到高维计算恐维度爆炸,故在低维计算,等效高维表现。

1.算法步骤:

1.1 选取合适的核函数Kxi,xj
1.2 将训练数据xi带入分类函数中,利用SMO求解系数αi


这里写图片描述

这里,大部分αi为0,因为其对应的训练数据xi,有yi(wxi+b)>1,只有wxi+b=1的训练数据才真正对分类有效,即其对应的αi不为0,这些数据即为支持向量。
1.3 根据上一步求得得分类函数对待分类数据x进行二分类。即判断f(x)的正负。

2.核函数

核函数:K(xi,xj),一般选高斯核函数即可。而核函数的选择往往不是最关键的,分类器性能更依赖于训练数据。


这里写图片描述

核函数原理:
将低维线性不可分数据通过核函数映射到高维,达到线性可分的目的,并利用内积函数使运算量并未明显增加。

3.多分类器的应用

SVM是二分类器,对于N类问题的分类有两种办法:
1. 训练N个SVM分类器,每个分类器对应分类一种类别与其他N-1种类别,最终分类结果是具有最大正距离的类别,即正向离超平面距离最远。实际应用上应该是取f(x)的最大值。
2. 训练N(N1)/2个SVM分类器,每个分类器对应两两类别的分类,结果通过投票决定,投票依据仍为f(x)。

4.拉格朗日对偶性

凸函数寻找最大值问题的求解方法,其局部最大值即全局最大值!

目标函数:


这里写图片描述

这里写图片描述

这里写图片描述

这里的某些条件即KKT条件:


这里写图片描述

5.使用松弛变量处理outliers 方法

数据本身是非线性结构的,而只是因为数据有噪声。对于这种偏离正常位置很远的数据点,我们称之为outlier ,在我们原来的SVM 模型里,outlier的存在有可能造成很大的影响,因为超平面本身就是只有少数几个support vector 组成的,如果这些support vector 里又存在outlier 的话,其影响就很大了。为了处理这种情况,SVM 允许数据点在一定程度上偏离一下超平面。


这里写图片描述

原创粉丝点击