SVM的替代方案

时间:2013-05-28 04:02:32

标签: machine-learning

SVM they say

的缺点
  

如果要素数远远大于样本数,   这种方法很可能会带来糟糕的表现。

在这种情况下,什么是好的选择?

1 个答案:

答案 0 :(得分:3)

你可以留意libsvm guide for beginners,在C.1部分,它会给你答案,并提供你所问的确切例子:

  

C.1实例数<<功能数量

中的许多微阵列数据      

生物信息学就属于这种类型。我们考虑来自白血病的数据   LIBSVM数据集(http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/   数据集)。训练和测试集有38个和34个实例,   分别。功能的数量是7,129,远大于   实例数。我们合并了两个les并比较了十字架   使用RBF和线性内核的验证准确度:

     
      
  • 带参数选择的RBF内核

         

    $ cat leu leu.t> leu.combined

         

    $ python grid.py leu.combined

         

    ...

         

    8.0 3.0517578125e-05 97.2222

         

    (Best C = 8.0,= 0:000030518,ve-fold交叉验证率= 97.2222%)

  •   
  • 带参数选择的线性内核

         

    $ python grid.py -log2c -1,2,1 -log2g 1,1,1 -t 0 leu.combined

         

    ...

         

    0.5 2.0 98.6111

         

    (最佳C = 0.5,ve折叠交叉验证率= 98.61111%)

         

    虽然grid.py是为RBF内核设计的,但是   上面的方法使用线性内核检查各种C(-log2g 1,1,1 set   一个假人)。

  •   
     

使用线性内核的交叉验证准确性   与使用RBF内核相当。显然,当   功能数量非常大,可能不需要映射数据。

     

除了LIBSVM之外,下面提到的LIBLINEAR软件也是如此   在这种情况下对数据有效。

因此,您可以看到您可以将SVM与线性内核一起使用并获得良好的结果。