Pertanyaan Apa perbedaan antara LibSVM dan LibLinear


libsvm dan liblinear keduanya pustaka perangkat lunak yang mengimplementasikan Dukungan Vector Machines. Apa bedanya? Dan bagaimana perbedaan membuat liblinear lebih cepat daripada libsvm?


24
2017-07-16 16:46


asal


Jawaban:


Dalam prakteknya kompleksitas dari algoritma SMO (yang berfungsi baik untuk kernel dan linear SVM) seperti yang diimplementasikan dalam libsvm adalah O (n ^ 2) atau O (n ^ 3) sedangkan liblinear adalah O (n) tetapi tidak mendukung kernel SVMs. n adalah jumlah sampel dalam dataset pelatihan.

Oleh karena itu untuk skala menengah dan besar, lupakan tentang kernel dan gunakan liblinear (atau mungkin lihatlah sekian banyak pemecah kernel SVM seperti LaSVM).

Edit: dalam praktek libsvm menjadi sangat lambat pada sampel 10k.


33
2017-07-17 16:07



SVM adalah mendukung mesin vektor, yang pada dasarnya adalah classifier linear, tetapi menggunakan banyak kernel transforms untuk mengubah masalah non-linear menjadi masalah linear sebelumnya.

Dari tautan di atas, sepertinya liblinear sangat sama, tanpa kernel tersebut berubah. Jadi, seperti yang mereka katakan, dalam kasus di mana kernel berubah tidak diperlukan (mereka menyebutkan klasifikasi dokumen), itu akan lebih cepat.


9
2017-07-16 17:01



Dari: http://www.csie.ntu.edu.tw/~cjlin/papers/liblinear.pdf

Ini mendukung L2-regularized logistic regression (LR), L2-loss dan L1-loss linear support vector machines (SVMs) (Boser et al., 1992). Ini mewarisi banyak fitur dari perpustakaan SVM populer LIBSVM

Dan Anda mungkin juga melihat beberapa informasi berguna di sini dari salah satu pembuatnya: http://agbs.kyb.tuebingen.mpg.de/km/bb/showthread.php?tid=710

Gagasan utama, saya akan katakan, adalah bahwa liblinear adalah dioptimalkan untuk menangani klasifikasi linear (yaitu tidak perlu kernel), sedangkan klasifikasi linear hanya salah satu dari banyak kemampuan libsvm, jadi secara logis mungkin tidak cocok dengan liblinear dalam hal akurasi klasifikasi. Tentunya, saya membuat beberapa generalisasi yang luas di sini, dan rincian yang tepat tentang perbedaan tersebut mungkin tercakup dalam makalah yang saya kaitkan di atas serta dengan panduan pengguna yang bersangkutan ke libsvm dari situs web libsvm.


3
2017-07-17 04:05