Подтвердить что ты не робот

Какая разница между LibSVM и LibLinear

libsvm и liblinear оба программных библиотек, в которых реализованы поддерживающие векторные машины. Какая разница? И как различия делают liblinear быстрее, чем libsvm?

4b9b3361

Ответ 1

На практике сложность алгоритма SMO (работающего как для ядра, так и линейного SVM), реализованного в libsvm, равна O (n ^ 2) или O (n ^ 3), тогда как liblinear - O (n), но не поддерживает ядро SVM. n - количество выборок в наборе учебных материалов.

Следовательно, для среднего и крупного масштаба забудьте о ядрах и используйте liblinear (или, возможно, посмотрите на примерные решатели SVM ядра, такие как LaSVM).

Изменить: на практике libsvm становится мучительно медленным при 10k образцах.

Ответ 2

SVM поддерживает векторную машину, которая в основном является линейным классификатором, но использует многие преобразования ядра, чтобы превратить нелинейную задачу в линейную проблема заранее.

Из приведенной выше ссылки, похоже, что liblinear - это очень одно и то же, без этих преобразований ядра. Итак, как говорится, в случаях, когда преобразования ядра не нужны (они упоминают классификацию документов), это будет быстрее.

Ответ 3

От: 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.