Lebih banyak pertanyaan umum. Saya menjalankan SVF rbf untuk pemodelan prediktif. Saya pikir program saya saat ini jelas perlu sedikit mempercepat. Saya menggunakan scikit belajar dengan pencarian kasar ke grid + validasi silang.
Setiap menjalankan SVM membutuhkan waktu sekitar satu menit, tetapi dengan semua iterasi, saya masih menemukannya terlalu lambat. Dengan asumsi saya akhirnya melakukan multi thread bagian validasi silang pada beberapa core, ada rekomendasi untuk mempercepat program saya? Adakah implementasi SVM yang lebih cepat? Saya pernah mendengar tentang beberapa SVM GPU, tetapi belum banyak menggali. Adakah pengguna dan apakah lebih cepat?
Jawaban:
Algoritma Google Sofia mengandung implementasi SVM linear yang sangat cepat. Itu salah satu SVM tercepat di luar sana, tapi saya pikir itu hanya mendukung klasifikasi, dan hanya mendukung SVM linear.
Bahkan ada paket R !
sumber
Speedup termudah yang akan Anda dapatkan adalah menjalankan validasi silang secara paralel. Secara pribadi, saya suka paket caret di R , yang menggunakan foreach sebagai backend. Itu membuatnya sangat mudah untuk mengolah validasi silang dan pencarian grid ke beberapa core atau beberapa mesin.
Caret dapat menangani banyak model berbeda, termasuk rbf SVMs:
Perhatikan bahwa pustaka doMC () hanya tersedia di mac dan linux, itu harus dijalankan dari baris perintah, bukan dari GUI, dan itu memecah model apa pun dari RWeka. Juga mudah untuk menggunakan cluster MPI atau SNOW sebagai backend paralel, yang tidak memiliki masalah ini.
sumber
Saya menyadari ini adalah pertanyaan yang cukup lama, tetapi juga mungkin (tergantung pada ukuran dataset Anda, itu bisa lebih atau kurang efektif) untuk menggunakan pendekatan dimensi rendah dari peta fitur kernel dan kemudian menggunakannya dalam linear-SVM. Lihat http://scikit-learn.org/stable/modules/kernel_approximation.html
sumber
Lihatlah modul multiprosesor Python . Itu membuat paralelisasi hal-hal sangat mudah dan sempurna untuk validasi silang.
sumber
R memiliki paket svm akselerasi GPU yang hebat , rpusvm , dibutuhkan ~ 20 detik untuk melatih sampel 20K * 100 dimensi, dan saya menemukan bahwa CPU tidak pernah kelebihan beban olehnya, jadi ia menggunakan GPU secara efisien. Namun, itu membutuhkan GPU NVIDIA.
sumber
Peringatan: Ini adalah plug yang tidak tahu malu.
Pertimbangkan DynaML sebagai pustaka ML berbasis Scala yang sedang saya kerjakan. Saya telah mengimplementasikan LS-SVM berbasis Kernel (Least Squares Support Vector Machines) bersama dengan tuning Kernel otomatis, menggunakan pencarian grid atau Coupled Simulated Annealing.
http://mandar2812.github.io/DynaML/
sumber