支持向量机通过得到划分超平面,来得到最优划分情况,即得到间隔最大的决策边界,而此时距离超平面(决策边界)最近的这几个样本点称之为支持向量(support vectors)。
数学公式:
- 样本空间中任意点x到超平面的距离可写为
- 假设超平面可将样本正确分类,则当
;当
。(已经过放缩变化,放缩前式子与0作比较)
- 对于支持向量而言,可使上述式子等号成立,两个异类支持向量到超平面的距离之和为(间隔)
。
- 故目标为
- 利用拉格朗日乘子法求解,可将原本(d+1)个变量、n个约束,转变为n个变量、(n+1)个约束的求解问题。d为样本维度,n为样本数量,当进行非线性变化后,d会极大,故采用此方法简化求解。
拉格朗日乘子法:
从而可得到此问题的拉格朗日函数: - 然后对上式w和b求偏导
- 带入上式,将w和b消去,得到
- 上述过程需满足KKT条件:
故对于任意训练样本都存在或者
。若
,则该样本不在上式的求和中出现,也就不会对f(x)有任何影响;若
,则必有
,所对应的样本点位于最大间隔边界上,是一个支持向量。
性质:训练完成后,大部分的训练样本都不保留,最终模型仅与支持向量有关。
核函数:
当原始样本空间内也许并不存在一个能正确划分两类样本的超平面,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。即,其对偶问题是:
由于上式涉及到,由于特征空间维数可能很高,甚至是无穷维,因此直接计算是困难的,可假设这样的函数
,即核函数。
常用的核函数:1.多项式核:;2.高斯核:
软间隔:
缓解过拟合问题的一个办法是允许支持向量机在一些样本上出错,引入“软间隔”,即允许某些样本不满足约束。
优化目标可写为:,其中C>0,是个常数,
是“0/1损失函数”。
然而此损失函数数学性质不好,使得式子不易求解,于是通常用其他函数来替代,称为“替代函数“,如下
引入松弛变量,可得到式子
可得下式拉格朗日函数
对w,b和求偏导可得
、
和
,代入式中可得
当C大的时候,意味着分类严格不能由错误;当C趋近于很小时,意味着可以有更大得错误容忍。高斯核函数:
高斯核函数可将mn得数据映射为mm,其中m为数据量,n为数据特征。
其过程为,将m个数据依次与所有数据得相同特征计算相似度并加和,替代原有特征值
下图中变量m为数据特征数(与上述n一致),p为数据量(与上述m一致)
又因为高斯核函数可写为,当γ越大时,越容易过拟合,反之,偏向欠拟合。