Liblinear vs Pegasos

时间:2014-11-07 16:41:05

标签: machine-learning svm liblinear

我一直在寻找快速线性SVM库,我遇到了两个最重要的 Liblinear Pegasos ,来自liblinear的文章,它看起来像是liblinaer胜过pegasos。然而,pegasos声称,如果数据稀疏,那么它的工作速度很快。 正如pegasos之前出现的那样,它没有比较;文档。

因此对于稀疏数据我应该选择什么?

2 个答案:

答案 0 :(得分:3)

据我所知,两者都可以很好地处理稀疏数据。问题更多的是数据点的数量。 Liblinear具有原始和双重解算器,这些解决了高精度问题,无需调整参数。对于pegasos或类似的次级下降解算器(如果你想要其中之一,我推荐Leon Bottou的sgd),结果很大程度上取决于初始学习率和学习率计划,这可能很难调整。 / p>

根据经验,如果我的数据点少于10k,我总是使用liblinear(使用原始求解器),甚至可能高达100k。在此之上,如果我认为liblinear要慢,我会考虑使用SGD。即使liblinear略慢,我更喜欢使用它,因为这意味着我不必考虑学习率,学习率衰减和时代数。

顺便说一句,您可以使用像scikit-learn这样的框架(包括SGD,Liblinear和LibSVM解算器)或lightning(包括很多解算器)来比较这些不同的求解器。

答案 1 :(得分:1)

LIBLINEAR和Pegasos都是线性分类技术,专门用于处理具有大量实例和功能的大型稀疏数据。在这类数据上,它们只比传统的SVM更快。

我之前从未使用过Pegasos,但我可以向你保证,LIBLINEAR对这类数据的速度非常快,而且作者说它与Pegasos&等最先进的线性分类器竞争甚至更快。 #34;