マシンLearning-サポートベクターマシン(SVM)

       SVMは、問題を解決するための機械学習方法の最適化により、新たなツールですが、多くの利点を示す小さなサンプル、非線形および高次元のパターン認識でそれを解決するため、データマイニングにおける新しい技術であり、かつ促進することができますフィッティングや他の機械学習の問題を機能させるアプリケーション。SVMは、最大間隔を超平面学習サンプルによって解決されるオブジェクト一般化線形分類器、のクラスデータバイナリ分類によって教師あり学習モードです。訓練サンプルセットを考えます

                                        

      基本的な考え方を学ぶ分類は、異なるカテゴリを分離するために、サンプル空間における超平面を見つけるために、トレーニングセットD部門に基づいています。しかし、多くのかもしれ分割超平面を分離することができます学習サンプル、我々はそれのために何を見てする必要がありますか?

図1

     1、直感的に、超平面を分割された2つのサンプル、超平面の真ん中に行くべき位置ため最善の乱れ「寛容」をローカライズされた学習サンプルの一部門。

     サンプル空間において、それはそう分割超平面を表し、法線ベクトルであるが、超平面の方向を決定する; Bは、変位用語であり、原点と超平面の間の距離を決定します。そのような超平面の法線ベクトルWとすることができる変位用語は、参照されるBは、決定されます任意の点のサンプル空間超平面までX 距離がのように書くことができます。

超平面と仮定しているがために、である、正しく分類学習サンプルが可能ならば、そこに、もし; 、そこに作ります

      図に示すように。2、超平面に最も近いトレーニングサンプルからいくつかの点がに(3)平等と、それらは「サポートベクター」と呼ばれ、超平面への2つの異種のサポートベクトルが距離の和であり、それは知られている「ギャップ。」満足見つけるために、すなわち分割する超平面を有する「最大間隔」を見つけるために(3)B、W制約パラメータ、例えばその場合、最大、すなわち  ST   間隔を最大にするために、唯一最大化することが明らかに、これは、と等価です最小化、したがって、式は次のように書き換えることができる  ST   基本的なサポートベクターマシンです。(解くことにより、式モデル対応する超平面5内に最大間隔を得るために)ここで、W、Bは、モデルパラメータです。

図2

      なにより私たちは訓練サンプルについて話していることを前提と超平面が正しく分類学習サンプルを分割することができますが、このような超平面のリアリティがないかもしれないがあることを、直線的に分離可能です。図に示すように、3サンプルが線形に分割することができるように、そのような問題のように、元の空間は、この特徴空間において、より高次元の特徴空間にマッピングすることができる(図4)。  

                                                      
      
図3

図4  

                                                                              

      令表示将x映射后的特征向量,于是,在特征空间中划分超平面所对应的模型可表示为,类似(5)式有  s.t.  ,其对偶问题是(7)求解式7)涉及到计算,这是样本xi与xj映射到特征空间之后的内积。由于特征空间维数可能很高,甚至可能是无穷维,因此直接计算通常是困难的。为了避开这个障碍,可以设想这样一个函数:  (8)即xi与xj在特征空间的内积等于它们在原始样本空间中通过函数计算的结果。有了这样的函数,我们就不必直接去计算高维甚至无穷维特征空间中的内积,也就是说,在线性不可分的情况下,支持向量机首先在低维空间中完成计算,然后通过核函数将输入空间映射到高维特征空间,最终在高维特征空间中构造出最优分离超平面,从而把平面上本身不好分的非线性数据分开,于是(7)式可重写为(9)求解后即可得到(10)这里的函数就是“核函数”。式(10)显示出模型最优解可通过训练样本的核函数展开,这一展式亦称“支持向量展式”。

      显然,若已知合适映射的具体形式,则可写出核函数,但在现实任务中我们通常不知道是什么形式,那么,合适的核函数是否一定存在的?什么样的函数能做核函数呢?我们有下面的定理:

 

       下表是几种常用的核函数。

表1 常用核函数

      在上面的讨论中,我们一直假定训练样本在样本空间或特征空间中是线性可分的,即存在一个超平面能将不同类的样本完全划分开。 然而,在现实任务中往往很难确定合适的核函数使得训练样本在特征空间中线性可分;退一步说,即使恰好找到了某个核函数使训练集在特征空间中线性可分,也很难断定这个貌似线性可分的结果不是由于过拟合所造成的。

      缓解该问题的一个办法是允许支持向量机在一些样本上出错。为此,就引入了“软间隔”的概念,如图5所示

图5  软间隔示意图.红色圈出了一些不满足约束的样本.

      具体来说,前面介绍的支持向量机形式是要求所有样本均满足约束(3),即所有样本都必须划分正确,这称为“硬间隔”,而软间隔则是允许某些样本不满足约束:(11)当然,在最大间隔化的同时,不满足约束的样本应尽可能少。于是,优化目标写为:(12)其中C>0是一个常数,是“0/1损失函数”:(13)显然,当C为无穷大时,式(12)迫使所有样本均满足约束(11),于是式(12)等价于(5);当C取有限值时,式(12)允许一些样本不满足约束。

对偶问题

      支持向量机有三宝:间隔、对偶、核技巧(核函数)。对于支持向量机我们想要找到一个划分超平面将样本正确分类,那么要找到具有最大间隔的划分超平面,就是要找到满足(3)式中约束的w,b使得最大,即  s.t.    i = 1,2,...,m,为了后面计算的方便,我们将它等价地写为 s.t.   i = 1,2,..,m,这是原始带约束的问题,求解这个式子计算比较复杂,所以我们用它的对偶问题来解决,具体来说就是对上式的每条约束添加拉格朗日乘子,则该问题的拉格朗日函数可写为:,这样引入拉格朗日乘子的无约束问题为:,它的对偶问题为:,我们分别对w和b求偏导,,代入得:

,代入得:

因此最后得对偶问题为:,我们求出和b后可得到模型:这里面有一个KKT条件,上述对偶问题需要满足此条件才可以互相转化:,于是,对任意训练样本,总有。若,则该样本将不会在模型(上式)的求和中出现,也就不会对有任何影响;若,则必有,所对应的样本点位于最大间隔边界上,是一个支持向量。这显示出支持向量机的一个重要性质:训练完成后,大部分的训练样本都不需要保留,最终模型仅与支持向量有关。

SVM应用案例

      表2R软件中支持向量机建模所用的软件包及数据集。

表2

      下图是用SVM进行分类的过程

      获取R软件中自带iris数据后,我们能够看到它共包含150个样本以及4个样本特征,结果标签共有三个类别均有50个样本。

      然后进行建模,X为特征变量,Y为结果变量建立SVM模型,然后是结果分析,分为三类。最后是预测,从150个样本中随机挑选8个预测结果进行展示,然后查看预测精度,发现模型将所有属于setosa类型的花全部预测正确;将属于versicolor类型的花中的48朵预测正确,但将另外两朵预测为virginica类型;同理,模型将属于 virdinica类型的花中的48朵预测正确,但也将另外两朵预测为versicolor类型。之后我们可以调整权重来优化建模。

 

 

 

 

 

 

おすすめ

転載: www.cnblogs.com/lf6688/p/11260024.html