SHOGUN toolbox的一些使用心得

由于最近在弄毕业设计,要同时使用MKL和SVM,所以找了很多关于这个方面的toolbox。一开始我是使用的是台湾大学林智仁教授的Libsvm和Liblinear的SVM toolbox,感觉到这个东西很好用,不管你是否懂得SVM方面的知识,只要看清楚函数接口和数据的组织形式,就可以方便的使用。当时后来要进行多特征多核融合,但是SVM只支持单核的,并且不能自己学习权重,所以要使用到MKL。在网上找了很久,也找到了许多相关的代码,看了一下,发现代码不是写得晦涩难懂就是太简单了,让人感觉到不踏实。幸好在这个时候我找到了SHOGUN toolbox,目测了一下,发现里面不但有MKL,还有包含了林智仁教授的Libsvm和Liblinear svm等其他的SVM算法,so exciting!!!

SHOGUN toolbox下载地址:http://www.shogun-toolbox.org/page/home/

总结的最好的莫过于官网的总结,请看下图:

SHOGUN是一个机器学习工具箱,其重点是在大尺度上的内核的方法,特别是支持向量机(SVM)的学习工具箱。它提供了一个通用的SVM对象接口 连接到几个不同的SVM的实现中,所有相同的底层,高效的内核实现利用。除了支持向量机和回归,SHOGUN还包含有大量的线性方法,如线性判别分析 (LDA),线性规划机(LPM),(内核)的感知,和算法训练隐马尔可夫模型。

在shogun的官网上浏览了里面函数的使用,给我的感觉就是它就像一个硕大无比的黑匣子,对于使用matlab静态接口的我来说,我所使用的函数名字基本都是sg,是shogun的缩写,只是里面的参数个数和名字不一样。首先我们使用sg函数往黑匣子里面装数据,并且要指定这些数据是用来干嘛的,是training还是testing什么的。然后就是训练SVM或是其他的分类器,这个toolbox里面包含了许多的分类器,感觉到这个toolbox很强大。库里面有很多通俗易懂的例子,我现在就是要多看例子,找到我要使用的函数。

在这个shogun黑匣子或说是大仓库里面,所有的数据都是预先堆积好的,等到有需要的时候再做处理。就好比,你先把所有的原材料给厨师,把所有你想要的材料准备好,然后再告诉厨师你今天想要吃什么菜肴。例如,为training和testing计算一个kernel矩阵并且显示:

sg('set_features','TRAIN',train_ features_matrix);

sg('set_features', 'TEST', test_ features_matrix);

sg('set_kernel',  'GAUSSIAN',  'REAL',  40 , 1 );

[K_train]=sg('get_kernel_matrix','TRAIN');

[K_test ]=sg('get_kernel_matrix', 'TEST');

[features_train]=sg('get_features','TRAIN');

[features_test ]=sg('get_features','TEST');

前面的那一块就是先把数据设计好,我的训练和测试的特征矩阵是什么,使用什么样的核函数,在这一块中,数据只是堆积起来而已,并没有因为你设置了核函数就对数据进行处理,就好像当你把原材料给厨师时,他不会马上开始做菜,而是要等到你告诉他你要吃什么样的菜肴。后面一块就是告诉系统应该怎么样处理这些数据的,然后再产生返回值,就相当于你告诉了厨师你想吃什么样的菜肴,你说你想吃酸菜鱼,厨师就从原材料中拿出酸菜和鱼及其他配料给你弄好这一道菜肴。

我真心觉得他们官网上的使用说明文档更新之后于软件包的更新,我发现软件包里的很多例子语句在文档中找不到相应的说明。

在里面的sg函数使用中,我发现有“set_features”和“add_features”这种类似的参数设置,现在对set和add还是没什么太深的认识。根据官网的解释和自己看例子的心得,说说自己的看法,这涉及到一个对象或是作用域的问题,在程序一开始的时候,使用“set_features”是给默认的feature对象赋值,当使用“add_features”时是新建了一个feature对象,并且对这个对象赋值。也就是说,使用set的时候是在默认的作用域里面,使用add的时候是在新建域里面,默认域只有一个,新建域则有多个,所以要分清add的对应关系。还有一个问题,就是使用“get_features”去读取特征的时候,一旦之前出现“add_features”的函数就会出错。

一些注意事项:

1)  shogun里的特征是按列存储的,label vector必须是行向量

2)  开始训练分离器是sg(‘train_classifier’),产生分类结果是result =  sg(‘classify’),result返回来的是label值。

3)  输进“set_label”中的label值必须顺序的从零开始。

4) GAUSSIAN kernel function: 

RBF kernelfunction:                        

这两个核函数在本质上是一样的,只是形式上不一样,开始我还奇怪为什么这个toolbox中连RBF这个那么常用的核函数都没有,原来是可以这样转换的。我可以直接利用之前用Libsvm寻优出来的sigmma做个倒数就行了。

5)“combined kernel”必须放在“add_kernel”和“add_feature”之前。

一些关于SHOGUN的有用链接:

elpmis的博客:http://blog.csdn.net/elpmis/article/details/4784603

SHOGUN toolbox的一些使用心得相关推荐

  1. Selective Search for Object Recognition论文翻译

    exhaustive search: 1)缺点:位置数量多,盲目 2)思考:我们能否通过数据驱动的分析来引导采样? 选择性搜索: 1)来源:结合穷举搜索和分割的优点-使用图像结构来指导采样过程,并提出 ...

  2. 笔记一|Selective Search for Object Recognition

    相关论文 分割方面[Felzenszwalb,P.F.,&Huttenlocher,D.P.(2004)]Efficent graph-based image segmentation 论文思 ...

  3. 「首席架构师推荐」精选数据挖掘和机器学习软件列表

    数据挖掘是指从大量的数据中通过算法搜索隐藏于其中信息的过程. 数据挖掘通常与计算机科学有关,并通过统计.在线分析处理.情报检索.机器学习.专家系统(依靠过去的经验法则)和模式识别等诸多方法来实现上述目 ...

  4. 【CV-Paper 14】Selective Search for Object Recognition

    论文原文:LINK 论文年份:2013 论文被引:4498(2020/07/09) 6221(2022/03/26) 文章目录 Selective Search for Object Recognit ...

  5. matlab音乐实训心得,matlab实训心得体会

    matlab实训心得体会 导语:Matlab,提起它,不管我们上课是否认真听讲了,我们都应该对它不再陌生,我们不可否认它的强大之处,正如一节课时老师给我们说的"Matlab可以做很多事情&q ...

  6. 多核学习工具箱Shogun的手动编译过程

    多核学习工具箱Shogun的手动编译过程 目录 多核学习工具箱Shogun的手动编写过程 一.写在前面的话 二.正式开始吧 三.可能有用的附录 四.写在最后的话 A.可能的更新1 B.可能的更新2 一 ...

  7. Razer Phone TWRP 适配编译心得

    Razer Phone TWRP 适配编译心得 暑假的时候搞到一台雷蛇手机,因为官方的 TWRP 功能基本上都是残废的,就想自己适配个 不过这也是第一次适配,故把第一次的适配步骤写在博客里 语文不是很 ...

  8. MATLAB Robotics Toolbox(Release 10)模块库--总结(一)

    在MATLAB命令行窗口输入 >>roblocks 出现模块库,如下图: 目录 (一)Toolbox function: 1.1 SE3 operations三维空间中的操作 1.2 SE ...

  9. MATLAB地图工具箱学习心得(二)设计可变参数和位置拾取的“放大镜”式投影程序

    最近刚好因为一些原因整理这方面的内容,所以还是把这篇鸽了一年多的博客顺手写出来了∠( ᐛ 」∠)_.因为是当时课程设计的一部分,程序上难免会有一些不足和bug,在这里将设计的思路分享给大家. 本篇博客 ...

最新文章

  1. python经典练习题
  2. D:\我的文档\收藏夹
  3. mysql 连接数测试_mysql最大连接数试验
  4. react学习(54)--注意传递请求
  5. 断电,软件崩溃,系统中毒,未点击保存,就关闭导致资料丢失,以word文件文件为例,如何找回
  6. 听说下雨天,子序列和孤单的你更配哦~
  7. h5自定义相机界面_有没有什么比较好用的H5小程序?
  8. 关于Windows 2003 sp1不能打开CHM文件的问题
  9. 谷歌母公司将分拆出新量子公司,名为“沙箱”
  10. 小记一下:CentOS里用多个iso镜像安装Xen虚拟机
  11. 电脑怎么连蓝牙耳机_三星蓝牙耳机怎么样 三星蓝牙耳机使用说明
  12. linux关闭在线登录用户和禁止root/IP直接ssh登录linux
  13. python酒店评论分析_酒店评论的情感分析
  14. UCDOS SDK FOR C/C++ 1.0 说明文件
  15. 当当年中庆,百万自营图书大放价,又有羊毛可以薅了
  16. 微信绑定会员卡服务器出错,会员卡信息更新失败
  17. Font Awesome介绍
  18. torch-scatter, torch-cluster, torch-sparse, torch版本对应,cuda
  19. No qualifying bean of type [com.*.*.dao.InfoDao] found for :错误!
  20. WordPress文章中插入qq表情

热门文章

  1. Spring Security 入门 Remember-Me 记住我功能
  2. Linux服务器搭建相关教程链接整理
  3. 滴滴-----浅谈滴滴派单算法
  4. cmd命令如何cd指定路径
  5. labview 添加自定义Lib
  6. 第11章 只读光盘存储器
  7. filesystem判断文件或文件夹是否存在
  8. 统计学习方法——统计学习的分类
  9. 递推最小二乘RLS推导
  10. 经典论文翻译导读之《A Bloat-Aware Design for Big Data Applications》