libsvm和svm-light比较 【zz】
发信人: CnF (帮我开机器-程序跑起来没有?), 信区: AI
标 题: Re: 有没有大侠比较过libsvm和svm-light?
发信站: BBS 水木清华站 (Mon May 12 01:04:12 2003), 转信
不会吧? 我以为libSVM是目前最快的SVM训练软件呢. SVM-light2.0是98年出来的,
挺土的,因为那时候还刚开始探索decomposition algorithm.它的算法详见
Joachims, T. (1998). Making large-scale SVM learning practical. In B. Scholk
opf, C. J. C. Burges, and A. J. Smola (Eds.), Advances in Kernel Methods - S
upport Vector Learning, Cambridge, MA. MIT Press.
同年出现的还有Platt的SMO算法. SVM-light还没有用上SMO的二维二次规划问题的
解析解法(虽然它也用的两个样本的working set). 但是可能由于它的其他得力机制,如
shrinking和Kernel Cache,在比较中才比SMO快的.(SVMlight用了80M内存,SMO没有用,光
这一点就不平等,我怀疑Joachims的算法实际上没有SMO快的.)
LibSVM2.3是2001年才出来的,其算法详见
Chang, C.-C. and C.-J. Lin (2001c). LIBSVM: a Library for Support Vector Mac
hines (Version 2.3). http://www.csie.ntu.edu.tw/~cjlin/papers/libsvm.pdf (Ju
ne 2001)
它综合了SVM-light和SMO的算法,而且还是被Keerthy改正过的SMO, 在很多地方比J
oachims的算法考虑得精细得多(比如shrinking机制,确实想得够妙了), 当然Joachims提
出了这些机制的思想,虽然实现得比较粗糙,但对于后来算法的发展有重要意义.
我觉得LibSVM不太可能比SVMlight慢吧,不过我只是这么一想,没做过试验. 你比的
是它们的什么版本? LibSVM出来2.4了,不过核心算法还是2.32的没变. SVMlight我不知
道后来又出新版本没有. 要试验比较的话, 注意让它们在同等条件下比较,包括解同样的
问题(这个其实不用说了,数据集,样本数,C值,核函数参数都要一样), 同样的Kernel Ca
che大小(也就是内存使用),同样的终止条件(这里注意LibSVM默认用的双边KKT违反tole
rance=0.001的终止条件,而SVMlight用的单边tolerance,默认大概也是0.001,也就是比
LibSVM松了一倍.) 后面二者对速度影响会很大的. 另外还有它们用的浮点数类型是否一
样, LibSVM默认用float而不是double型存放核函数矩阵的元素, 等于可用内存大了一倍
, 但结果的有效位数会下降.
至于分类效果好坏, 应该跟用哪种解二次规划的算法没什么关系吧. 只要它们用一
样的终止条件卡着, 结果应该都是精确的. 但是支持向量个数及alpha值,b值都会差一点
,这个不奇怪,就是吧样本顺序重排一遍再算结果也会有少许区别的. 如果试验中两个算
法用的一样的终止条件, 分类效果总是一个明显比另一个好,那就实在太奇怪了, 只能说
明我的理解不对了.
【 在 alamarik (走向成熟) 的大作中提到: 】
: 最近弄了一阵子svm,发现libsvm和svm-light两个工具
: 听不错的。其中,libsvm似乎是从svm-light基础上发展起来的
: 但是在解二次规划的方法上,没有完全沿用svm-light的方法。
: 我做了些简单的实验,发现普遍来说,svm-light比libsvm快,而且效果
: 好一些。不知道有没有大侠对他们有研究,比较一些如何?
: 不过,libsvm很容易使用,很容易被集成在自己的cpp工程中,svm-light
: 似乎很麻烦吧,呵呵。
: 期待大家的回复。。。。。。
--
主楼不关门,是我永远的梦想
实验室不断电,是我最大的愿望
每天早上帮我按一下Power,是我唯一的请求
有没有办法来电自动开机呢?如果知道请给我写信,谢谢!
※ 修改:・CnF 于 May 12 01:08:20 修改本文・[FROM: 166.111.151.78]
※ 来源:・BBS 水木清华站 smth.org・[FROM: 166.111.151.78]
发表者 Tintin 以 03:57
Blog Archive
-
▼
2010
(60)
-
▼
November
(29)
- http://www.fit.vutbr.cz/research/groups/speech/pub...
- China Town & Tian Tian Supermarket - shopping - Me...
- 爱普泰克的板子使用心得 « 猪哥的Blog
- iPhone_4_Finger_Tips.pdf
- 简单必备需掌握 iPhone 4实用技巧28条_苹果iPhone 4(32GB)_手机中国
- Matlab foder and file read in loop & Struct
- Matlab text file read example and tutorial
- Apple最新发布!第四代苹果手机:iPhone 4全面介绍 - 苹果fans-中文Apple Blog
- C语言结构体赋值
- myFeng: SVMlight使用简介
- shogun | A Large Scale Machine Learning Toolbox
- The comparation between libsvm and SVM light
- Perl Programming Tutorial: Data Structures
- Automatic Speech Recognition:
- NCE4-L41 Training elephants
- __LINE__ equivalent for Linux shell: $LINENO
- LingPipe: Language Identification Tutorial
- Good Internet resources for Speech Processing
- 《数据结构》考试大纲
- Try goto in linux
- Howto: Linux Rename Multiple Files At a Shell Prompt
- C Programming - Use of the ftime() Function
- [C Language] Use of the ftime() Function
- [C Language] exit function
- Handling Binary Files in Perl
- How to solve: error C2065: 'cout' : undeclared...
- Development for Beginners | C++ Beginner's Guide |...
- How to compile a C program on Visual Studio 2010
- Essential DOS Commands and Concepts
-
▼
November
(29)
No comments:
Post a Comment