统计学习方法六:支持向量机二(非线性支持向量机)
一、非线性分类问题
1、什么是非线性分类问题?
非线性分类问题是指通过利用非线性模型才能很好地进行分类的问题。
感知机、之前介绍的两种支持向量机模型都是通过一个超平面将数据分成正负两类。但是有些情况并非一条直接或者一个平面就能把数据切分,可能需要一条曲线或者一个超曲面。
2、非线性分类问题的解法?
非线性问题往往不好求解,通常采取的一个策略:
将非线性问题转换为线性问题,通过解变换后的xianx 问题求解原来的非线性问题。
如何变换?
通过一个映射关系,将原空间中的点相应的变换为新空间中的点,原空间的曲线变换为新空间的直线。
求解步骤?
(1)将原空间中的问题映射到新空间
(2)在新空间运用线性分类学习方法学习分类模型。
二、核函数
1、什么是核函数?
直接贴图了...
补充:
(1)欧式空间和希尔伯特空间:上一篇大概说过,我理解的两者的差别主要在于空间维数,而核函数强调的特征空间也一般是高维和无穷维的。
(2)通常,学习和预测中只定义核函数,而不显示地定义映射函数。这是因为直接计算核函数往往比通过映射函数内积更简单。
(3)给定一个核函数,特征空间和映射函数取法不唯一。可以取不同维度的特征空间,即使在同一个特征空间,映射函数也可能有多个。
2、核技巧在支持向量机中的应用
(1)核技巧:在核函数给定的条件下,利用解线性分类问题的方法求解非线性分类问题。不需要显示地定义特征空间和映射函数,学习时隐式的在特征空间进行的。
(2)通俗的讲:就是把之前目标函数和决策函数的内积用核函数代替:
3、常用核函数:
线性核函数、多项式核函数、径向基核函数、高斯核函数、幂指数核函数、拉普拉斯核函数、ANOVA核函数、二次有理核函数、多元二次核函数、逆多元二次核函数以及Sigmoid核函数
三、非线性支持向量分类机
从非线性分类训练集,通过核函数与软间隔最大化,或凸二次规划,学习得到分类决策函数。
1、学习模型
模型即为一个决策函数:
2、学习策略和算法:
(1)核函数选择和参数C选择
(2)求解最优化问题,求得最优解a
(3)根据a的值计算b,最后得出决策函数
---------------我是调皮的分割线-----------------------------
下面是SMO算法,之所以分割,是因为它不是非线性支持向量机独有的。三种支持向量机都可以运用此算法求解。
一、SMO算法是用来做什么的?
之前介绍的三种支持向量机,在学习算法描述过程中,最后都转化为了求a的最优解,之后再用a的最优解来表示决策函数。
但是,这个a的最优解是怎么求的呢?之前的描述都不了了之了...
这个SMO算法就是用来求a的。
所以总结一下,支持向量机的求解步骤:
1)构造最优化问题
2)用拉格朗日方法求解:
(1)关于w和b最小化 —— 偏导 = 0
(2)关于拉格朗日乘子a求极大 —— SMO算法
(3)求解对偶因子 —— SMO算法
二、SMO算法是什么?
将大优化问题分解为多个小优化问题。对小优化问题顺序求解,结果与直接对大优化问题求解一致。
1、工作原理
每次循环选择两个a进行优化处理:增大其中一个,同时减小另一个。
选择什么样的a?
(1)两个a必须要再间隔边界之外
(2)两个a还没有进行过区间化处理或者不在边界上。
为什么选择两个a?
这个算法有一个约束条件aiyi的总和为0,如果只改变一个a的值,会破坏约束条件,所以改变两个。
算法步骤?
(1)选择两个a
(2)对两个a进行优化处理
简单版SMO算法思路:
(1)选择一个a1
(2)计算分类yi,计算分类误差E1(即预测值与真实值的误差),如果误差过大,优化a1
(3)选择a2,计算分类误差E2
(4)计算L,H
(5)计算Eta(aj的最新修改量),计算一个新的a2,并对其进行调整
(6)如果aj有改变,调整b1、b2
2、a值获取
(1)第一个a:外循环遍历,对全部数据集进行扫描 —— > 扫描不等于边界(0或C)的a值
(2)第二个a:最大步长(E1-E2)
基础:
(1)常数C:在线性支持向量机提到过,是惩罚因子,用来对那些误分类的点进行惩罚,是软间隔最大化的机制。实际非线性支持向量机,也是利用的软间隔最大化。
SMO算法未完待续...