SVM支撑向量机相关
概述
Support Vector Machine(SVM),译作支撑向量机。不同的核函数有不同的作用,线性核、多项式核可以做回归问题。高斯核用作分类问题。从名字含有Support Vector,可以猜想是一种关注个别向量的算法,实际上也确实是。
在分类问题中,假设线性可分,我们要找到一个能把两簇数据分隔开的超平面。思路是通过两簇数据的相邻边界上的代表点(支撑向量),如果把这些特殊的代表点有效分开了,就把两簇数据分开了。
因为只关注个别点,所以特征转换可以随意些。
推导
(参考的台湾大学课程《机器学习技法》)
目标是在所有线性可分点中,找到距离分割面距离最近的点,使得这些点到面的距离尽可能的大。如果分割中最危险的点都被很好的分开,那么认为这个分割面分割效果很好。
在二维平面中:
其中KKT条件汇总为:
启示
基本模型是通过最大最小问题,找到支撑向量,算法其他参数都能通过支撑向量导出。
线性不可分情况
上面推导是数据完全线性可分基础上。为增加泛华能力,引入松弛因子和约束条件。C越大,泛华能力越低,C无穷大时,退化成线性可分支持向量机。C越小,过渡带越宽,泛化能力越强。
除了引入松弛因子,还可以引用特征转换,也就是引入核函数。把x映射的高维中,把低纬空间不可分转换到高维可分中。其中高斯核函数把数据映射的无穷维。