以二元分类为例,假设有个观测样本
,每个样本都包含
个特征
与以往的二元分类不同,将负类设为
,正类不变,为
。当用线性的决策边界去划分两类时,
时,
划分为正类。
时,
划分为负类。
因此
最佳分类面为,即夹在两条决策边界中间的直线。为了达到最佳的分类效果,要使两条决策边界之间的距离最大,而两类之间的距离由最靠近边界的点决定,即
与
来决定,即最大距离
为
使距离最大,就是使
最小,即
与Logistic回归类防止过拟合类似,将决策边界(分类面)的条件放宽,即
为松驰项,表示允许有一些样本在边界外,但是不能过多,因此需要使
要使在约束条件
达到最小。利用拉格朗日乘数法构造代价函数为
其中
因此为了使代价函数取得最小值,和
需要取得最大值,即
。
分别对求偏导数为
将其带入代价函数中可以得到
为了使都取得最大值,利用SMO算法(Sequential minimal optimization),每次变动两个参数,与此同时固定其余所有的参数。之所以选择变动两个参数,是因为有限制条件
因此,我们至少要变动两个参数才能保证满足这个限制条件。所以SMO算法就选取了最简单的情况,只变动两个参数。
将分成两个部分,一部分包含了变动参数
,另一部分与变动参数无关,将其他参数
看做是一个常数。
化为向量形式为
其中变动参数部分为
常数部分为
因此可以得出
根据式可以用
来表示
又因为,所以
也可以表示为
将代入
式,记
,可得
因为
,所以它们的平方项都为
,故
化简可得
化简为标准型为
平方项的系数为半正定,
因此由可知
为开口向下的抛物线,在不考虑
的情况下,
取得极大值所对应的
为
因为,转化为向量形式为
将式带入可得
因此可以化简为
这个式子的右边只依赖于旧的,式子的左边为新的
,因此这个式子可以用来更新
。现在加入之前没有考虑的约束条件:
此时分两种情况讨论
- 当
时
由可以得出
- 当
时
由可以得出
如果落在上述区间内,那么就取
;如果
小于所允许的最小值,那么
; 如果
大于所允许的最大值,那么
。
知道了新的,我们就可以算出新的
。 如果
按之前的规则取值,那么我们就可以保证
一定会落在有效区间之内。