libsvm, liblinear, svmlight简介

本文对比了libsvm和liblinear这两个开源机器学习库。libsvm支持非线性分类,适用于小规模样本;liblinear则专长于线性分类,处理大规模、高维数据时更为高效。文章还介绍了svmlight的使用体验,并提供了实验测试结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

libsvm 、liblinear:

libsvm 和liblinear 是两个著名的开源机器学习库,两者都是由台湾国立大学所写。语言c++, 接口为C风格。

libsvm 实现了支持核技巧的SVM, 使用的算法是SMO算法;支持分类和回归。

liblinear实现的是线性SVM。使用的训练算法是一致下降算法(coordinate descent algorithm),模型是logistic regression models。

libsvm主页:http://www.csie.ntu.edu.tw/~cjlin/libsvm/

liblinear主页:http://www.csie.ntu.edu.tw/~cjlin/liblinear/

优缺点:

libsvm 支持非线性分类,在样本维数少的情况下,训练效果通常会比liblinear好。但计算量较liblinear大。该分类器在大数据,高维数时运算量剧增,用作分类训练会占用很长的时间。

liblinear为线性分类,其训练速度非常快,但是很消耗内存。适用于维数高,数据样本量大的情况。在大量样本数据和高维数特征的情况下,线性分类器的分类效果并不比libsvm差。

下面的链接中,有网友的类似经验:http://blog.youkuaiyun.com/pkueecser/article/details/8026376

什么时候该用liblinear而不是用libsvm呢?

libsvm和liblinear的主页给了我们一些参考:http://www.csie.ntu.edu.tw/~cjlin/liblinear/

When to use LIBLINEAR but not LIBSVM

There are some large data for which with/without nonlinear mappings gives similar performances.  Without using kernels , one can quickly train a much larger set via a linear classifier.  Document classification  is one such application. In the following example (20,242 instances and 47,236 features; available on  LIBSVM data sets ), the cross-validation time is significantly reduced by using LIBLINEAR:
% time libsvm-2.85/svm-train -c 4 -t 0 -e 0.1 -m 800 -v 5 rcv1_train.binary
Cross Validation Accuracy = 96.8136%
345.569s
% time liblinear-1.21/train -c 4 -e 0.1 -v 5 rcv1_train.binary
Cross Validation Accuracy = 97.0161%
2.944s
Warning: While LIBLINEAR's default solver is very fast for document classification, it may be  slow  in other situations. See Appendix C of our  SVM guide  about using other solvers in LIBLINEAR.

Warning:If you are a beginner and your data sets are not large, you should consider LIBSVM first.


svmlight

下面介绍一个学习和使用svm light 的网站:http://www.cs.cornell.edu/People/tj/svm_light/

大部分网友使用之后都有一个共同的感觉: svmlight 要比libsvm要快。 在相同级别的精度下,svmlight 大概要比libsvm 快 2到3倍。


实验测试:





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值