这个问题面试的时候挂掉了,很难过,不过现在想明白了,做个笔记。
liblinear和libsvm都用线性核函数的时候liblinear也更快,具体原因是因为liblinear在求解的过程中维护者w的值,那么当前训练集每个样本的预测值就是w*x_i; 而libsvm因为考虑非线性核的情况,优化过程中不能维护w的值,根据http://blog.csdn.net/v_july_v/article/details/7624837 核函数的求解过程,每个样本的预测值只能通过 (sum_j alpha_j y_j x_j)*x_i来求解。 时间复杂度liblinear应该是O(n),而libsvm是O(n^2)