机器学习第四篇:SVM,SMO算法的实现

这两天摸索了SVM,刚开始的时候接触SMO的时候就很懵,但是我有机器学习三大法宝护体,最终还是搞懂了一些。

前面的细节部分就不予阐述了,直接从SMO算法部分开始讲起:

下面讨论具体方法:

\underset{\alpha }{min } \frac{1}{2}\sum\sum\alpha _i\alpha _jy_iy_jK(x_i,x_j) - \sum\alpha _i                                       (1)

s.t. \sum\alpha _iy_i =0                                                                                (2)

        0\leq \alpha _i\leqslant C , i = 1,2,...,N                                                     (3)

\omega =\sum\alpha _iy_ix_i                                                                                    (4)

\alpha_1y_1+\alpha_2y_2 = -\sum_{i=3}^{N}y_i\alpha_i = \xi                                                        (5)

g(x) = \sum\alpha_iy_iK(x_i,x) +b                                                           (6)

利用上面这些等式来计算:

首先假设我们的初始可行解为\alpha_1 ^{old},\alpha_2^{old},最优解为\alpha_1 ^{new},\alpha_2^{new},未经处理过的\alpha_2的最优解为\alpha_2^{new,unc},根据(5),

\alpha_1y_1+\alpha_2y_2 = \xi,y只有两种情况1和-1,然后在两种情况下我们来确定\alpha_2^{new,unc}的范围:L\leq \alpha _2^{new,unc}\leqslant H

然后分情况讨论L,H的取值:

此时y_1\neq y_2,则:

\fn_jvn L=max(0,\alpha_2^{old}-\alpha_1^{old})H=min(C,C+\alpha_2^{old}-\alpha_1^{old})

y_1= y_2时:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值