【发布时间】:2012-07-15 13:33:47
【问题描述】:
【问题讨论】:
标签: algorithm machine-learning svm libsvm
【问题讨论】:
标签: algorithm machine-learning svm libsvm
在实践中,在 libsvm 中实现的 SMO 算法(适用于内核和线性 SVM)的复杂度为 O(n^2) 或 O(n^3),而 liblinear 为 O(n) 但不支持内核 SVM。 n 是训练数据集中的样本数。
因此,对于大中型规模来说,忘记内核并使用 liblinear(或者看看近似内核 SVM 求解器,例如 LaSVM)。
编辑:在实践中,libsvm 在 10k 样本时会变得非常缓慢。
【讨论】:
发件人:http://www.csie.ntu.edu.tw/~cjlin/papers/liblinear.pdf
它支持 L2 正则化逻辑回归 (LR)、L2 损失和 L1 损失线性支持向量机 (SVM) (Boser et al., 1992)。它继承了流行的 SVM 库 LIBSVM 的许多特性
您可能还会在此处看到其中一位创建者提供的一些有用信息:http://agbs.kyb.tuebingen.mpg.de/km/bb/showthread.php?tid=710
我想说,主要思想是 liblinear 被优化以处理线性分类(即不需要内核),而线性分类只是 libsvm 的众多功能之一,因此在逻辑上就分类准确度而言,它可能与 liblinear 不匹配。显然,我在这里做了一些广泛的概括,关于差异的确切细节可能包含在我上面链接的论文以及 libsvm 网站上相应的 libsvm 用户指南中。
【讨论】:
SVM 是support vector machine,它基本上是一个线性分类器,但是使用了很多核变换,预先将非线性问题变成了线性问题。
从上面的链接中,似乎 liblinear 是非常相同的东西,没有那些内核转换。因此,正如他们所说,在不需要内核转换的情况下(他们提到文档分类),它会更快。
【讨论】: