Libsvm使用自定义核函数

    Libsvm是实现了SVM算法的一个开源工具包(http://www.csie.ntu.edu.tw/~cjlin/libsvm/),我最近有一个实验要用到自定义核函数的Libsvm,其中网上有不少的matlab版本的使用自定义核函数矩阵的方法例如:http://www.shamoxia.com/html/y2011/3003.html。但是Java和C++版本与matlab有所区别。而且Libsvm最新的版本才加上多分类的解决方案。故我采用了Java版本的自定义核函数方法。

   对于自定义核函数,libsvm中称为:Precomputed Kernels。其中的例子如下:

  Assume the original training data has three four-feature instances and testing data has one instance:

     15  1:1 2:1 3:1 4:1
     45      2:3     4:3
     25          3:1

     15  1:1     3:1

   If the linear kernel is used, we have the following new training/testing sets:

     15  0:1 1:4 2:6  3:1
     45  0:2 1:6 2:18 3:0 
     25  0:3 1:1 2:0  3:1
 
     15  0:? 1:2 2:0  3:1

   ? can be any value.

  其中,15,45等是类别,而第二个则为自定义函数的矩阵。在使用线性核的状态下计算值如第二个矩阵所示。具体说明如下

    类别   0:索引(即该条数据为第几条)  1:与第一条数据的核函数值  2:与第二条数据核函数值  ……  n:与第n挑数据的值

在自定义核函数构造该矩阵之后,调用方式采用svm_train -t 4 [其他可选参数] kernel_file(核函数矩阵文件) Model_file(模型文件)。这样,我们就可以很容易地应用Java,C++版本的核函数矩阵了。

转载于:https://www.cnblogs.com/liliu/archive/2011/06/23/2088316.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值