支持向量机(三)序列最小最优化算法(SMO)

        在支持向量机(一)和支持向量机(二)两篇文章中,我们分别介绍了线性可分的支持向量机和线性向量机,从中可知,我们最终的目的是要计算得出支持向量对应的拉格朗日乘子α,但是我们并没有说怎么算。这篇文章主要介绍了序列化最小优化算法,用来计算α。在介绍之前我们先简单介绍一下其中用到的核函数。

  1. 核函数

        首先我们看下面的两个图:

                                                            

        我们看上面的两个图,右边的明显是可以用一个直线将数据分开,那就是线性可分的,而左边的图是用一个曲线将数据分开的,这个问题就称之为非线性可分的问题。而非线性问题往往不好求解,而我们希望的就是能用线性求解的问题来求解非线性的问题,方法就是进行一个变换,将非线性问题变成线性问题。

        再看上面左图,是个椭圆的形式,给出椭圆的函数,这个函数明显是非线性函数,下面我们将其做变换令:

                                                                              

                                                                             

        然后我们将其原式替换,得到:

                                                                

        可以看到经过简单的变换,将原来的非线性问题转化为了式1的线性问题。这就是核技巧的基本思想。

核技巧分为两步:首先使用一个变换将原空间的数据映射到新空间;然后在新空间里用线性分类学习方法从训练数据中学习分类模型。

        进行数据映射的话,我们就用到了核函数:

                                                              

        其中K(x,z)就是核函数,φ(x)成为映射函数,就是将原空间映射到新空间的映射方式,对应上面的例子φ(x)=x2,φ(x)∙φ(z)就是两个映射的內积。

        下面我们再看先线性支持向量机的目标函数:

                                                

        我们将式2中的xi和xj的內积替换成映射的內积,即映射后的求解最优值问题:

                                                  

        然后求解最优解

        线性支持向量机的最终分类函数形式如下:

                                            

        同样将xi和x的內积形式替换为K(xi,x)得:

                                         

        我们常用的核函数有:

       (1)多项式核函数

                                          

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值