libsvm和liblinear都是实现支持向量机的软件库。它们之间有什么区别?这些区别如何使得liblinear比libsvm更快?
回答:
在实际应用中,libsvm中实现的SMO算法(适用于核和线性SVM)的复杂度为O(n^2)或O(n^3),而liblinear的复杂度为O(n),但不支持核SVM。n是训练数据集中的样本数量。
因此,对于中到大规模的数据集,建议放弃使用核函数,转而使用liblinear(或者可以考虑使用近似核SVM求解器,如LaSVM)。
编辑:在实际操作中,libsvm在处理10,000个样本时变得非常缓慢。