Scikit-learn: Mesin Vektor Relevansi (RVM)

Dibuat pada 3 Jan 2013  ·  68Komentar  ·  Sumber: scikit-learn/scikit-learn

RVM adalah kerangka kerja Bayesian untuk mendapatkan solusi yang jarang untuk tugas regresi dan klasifikasi. Ini menggunakan model bentuk yang identik dengan SVM (Support Vector Machine). Ini memecahkan kelemahan SVM berikut:
-- Jumlah fungsi dasar dalam SVM tumbuh secara linier dengan ukuran set pelatihan
Dalam RVM, kita mulai dengan basis 0 dan secara bertahap memperbarui (menambah/menghapus) himpunan fungsi basis hingga konvergen.

-- Prediksi SVM tidak probabilistik sedangkan RVM probabilistik

-- Hal ini diperlukan dalam SVM untuk memperkirakan margin trade-off parameter 'C' yang tidak terjadi di RVM

-- Kernel SVM harus pasti positif. Di RVM kita bisa menggunakan kernel apa saja.

Itu sudah diimplementasikan di dlib http://dlib.net/dlib/svm/rvm_abstract.h.html dan ada juga implementasi matlab di sini http://www.vectoranomaly.com/downloads/downloads.htm. Kode-kode ini harus berfungsi sebagai panduan.
Saya pikir itu akan menjadi ide yang baik untuk menambahkannya ke scikit-learn.

Referensi :
1- Tipping, M. E. and A. C. Faul (2003). Fast marginal likelihood maximisation for sparse Bayesian models. In C. M. Bishop and B. J. Frey (Eds.), Proceedings of the Ninth International Workshop on Artificial Intelligence and Statistics, Key West, FL, Jan 3-6.

2- Tipping, M. E. (2001). Sparse Bayesian learning and the relevance vector machine. Journal of Machine Learning Research 1, 211–244.

New Feature

Komentar yang paling membantu

Hai @amueller dan semuanya! Kami melihat utas ini dan memutuskan untuk mengimplementasikan versi RVM yang kompatibel dengan sklearn (https://github.com/Mind-the-Pineapple/sklearn-rvm). Kami mendasarkan banyak dari apa yang kami lakukan pada implementasi JamesRitchie. Akan sangat bagus jika seseorang bersedia untuk melihatnya dan masukan serta kontribusi (@themrzmaster) dipersilakan :)
Kami memiliki rencana untuk memelihara repo ini, mengimplementasikan versi cepat pada versi 0.2 dan berharap mungkin suatu hari kode ini dapat berguna untuk repositori utama scikit-learn 😊

Semua 68 komentar

Saya harus membacanya lagi tetapi secara umum saya pikir RVM akan menjadi tambahan yang bagus.
dlib adalah boost berlisensi yang harus kompatibel. Namun, mungkin tidak mudah untuk membungkusnya karena gaya pengkodean yang sangat berat.
Apakah masalah dioptimalkan menggunakan SMO? Apakah masuk akal jika kita menerapkan SMO?

Harus menangkap Uskupku.

Apa hubungan antara ARD dan RVM? Apakah RVM hanya versi "fungsi dasar" dari ARD?

Btw adakah yang pernah terganggu oleh fakta bahwa bagian Generalized Linear Models tidak berisi model umum?

Ok jadi kita harus menggunakan sequential sparse learning algorithm Bishop p. 352 mengikuti saya kira?
Kenali dirimu ;)

Saya ingin tahu apakah ada metode serupa untuk ARD? Itu akan keren karena implementasi ARD saat ini cukup lambat :-/

Tidak implementasi RVM pasti tidak menggunakan SMO. Saya pikir SMO hanya digunakan untuk optimasi SVM.
Ya kita harus menggunakan sequential sparse learning algorithm dalam referensi 1 halaman 7. (apakah di uskup p 352? yang mana). Algoritma ini cukup "sederhana" dan kita dapat menulisnya tanpa menggunakan dlib. Saya sedang berpikir untuk menulisnya dengan python dan kemudian menggunakan cython untuk pengoptimalan. Dalam hal ini kita dapat mengambil keuntungan penuh dari implementasi matlab. Bagaimana menurut anda?
Bagaimanapun, itu harus mungkin untuk menulis dalam C++. Tetapi untuk itu kita akan membutuhkan pustaka aljabar linier yang baik di C++. Saya tidak yakin apakah secara default scikit-learn hadir dengannya.

Bishop adalah "Pembelajaran Mesin dan Pengenalan Pola".

Algoritme mungkin tidak sepenuhnya mudah untuk diperbaiki. Jika Anda ingin memulai ini, itu pasti akan menjadi proyek yang lebih besar. Jika Anda tertarik dan ingin menerapkannya dengan cara apa pun, silakan.

Menerapkannya juga sedikit berbeda dari memasukkannya ke scikit-learn. Itu juga melibatkan tes menulis, dokumentasi dan panduan pengguna - dan kode cantik.

Untuk percobaan pertama, Anda harus menggunakan numpy saja. Ini menggunakan bla secara internal dan karena itu cukup cepat.
Mempercepat menggunakan Cython hanya masuk akal jika ada banyak python di atas kepala. Jika semua waktu dihabiskan dalam panggilan BLAS, menggunakan Cython tidak masuk akal.

OK untuk Cython dan numpy. Saya tidak tahu uskup berbicara tentang RVM.
Untuk hubungan ARD dan RVM. Saya tidak tahu banyak tentang ARD. Tetapi dalam referensi 2 penulis mengatakan bahwa RVM didasarkan pada ARD : "Kami menyebut vektor pelatihan tersebut yang terkait dengan vektor 'relevansi' bobot tidak nol yang tersisa, untuk menghormati prinsip penentuan relevansi otomatis yang memotivasi pendekatan yang disajikan" Halaman 3 (213) baris 8.
Bagaimana cara kerja ARD?

ARD juga dijelaskan di buku Bishops dan di buku petunjuk . Ini menempatkan Gaussian diagonal sebelumnya pada bobot dan mencoba memperkirakan varians, yang (seperti yang saya pahami) sama dengan yang dilakukan RVM. Apakah itu benar?

Saya menyadari bahwa ref menyebutkan:

http://books.nips.cc/papers/files/nips20/NIPS2007_0976.pdf

bukan implementasi yang kita gunakan. Saya pikir @vmichel mengimplementasikan
Pendekatan uskup sementara makalah ini bertujuan pendekatan titik tetap yang mirip dengan
pendekatan penurunan koordinat. Kode ini pasti membutuhkan cinta ...

Terima kasih @agramfort , saya bertanya-tanya tentang itu. Saya tidak membahas detailnya tetapi saya pikir karena kertas adalah satu-satunya referensi ...

Saya akan sangat menghargai jika Anda bisa menambahkan komentar di sana mengutip bab uskup yang digunakan mungkin mengatakan kita harus menerapkan kertas lain sebagai gantinya.

(btw salah satu hal paling lambat di suite pengujian saat ini adalah memasang ARD pada dataset boston dalam pengujian umum)

Terima kasih @agramfort , saya bertanya-tanya tentang itu. Saya tidak membahas detailnya tetapi saya pikir karena kertas adalah satu-satunya referensi ...

Saya akan sangat menghargai jika Anda bisa menambahkan komentar di sana mengutip bab uskup yang digunakan mungkin mengatakan kita harus menerapkan kertas lain sebagai gantinya.

lihat: https://github.com/scikit-learn/scikit-learn/pull/1530

Btw adakah yang pernah terganggu oleh fakta bahwa bagian Generalized Linear
Model tidak mengandung model umum?

Memang: regresi logistik.

Saya ingin tahu apakah ada metode serupa untuk ARD? Itu akan keren sebagai
implementasi ARD saat ini cukup lambat :-/

Saya percaya bahwa pemecah cepat ARD yang paling menjanjikan adalah dengan mengimplementasikan
strategi terungkap dalam:
http://books.nips.cc/papers/files/nips20/NIPS2007_0976.pdf

Saya memakai Gist sebuah kode yang ditulis beberapa waktu lalu.

Jika seseorang ingin bekerja di ARD saya pikir itu bisa berguna.

https://Gist.github.com/4494613

PERINGATAN: itu tidak banyak diuji dan saya tidak menjamin kebenaran tetapi itu
tampaknya bekerja.

@mueller
Saya telah menganalisis ARD di http://books.nips.cc/papers/files/nips20/NIPS2007_0976.pdf dan saya pikir RVM dan ARD ingin mengoptimalkan fungsi tujuan yang sama. Perbedaannya tampak pada metode yang digunakan untuk mengoptimalkan fungsi ini. Di RVM, penulis memperhatikan bahwa sebagian besar bobot akan mendekati nol dan mereka menggunakan ini untuk mendapatkan algoritme "cepat".

Itu terdengar aneh. Jika tujuannya sama, Anda harus dapat menggunakan metode yang sama untuk pengoptimalan, bukan?

Ya pasti Anda harus melakukannya, tetapi saya kira penulis RVM menggunakan strategi pengoptimalan yang berbeda untuk memiliki algoritme yang lebih cepat dan lebih jarang.

@yedtoss Saya cukup yakin ada beberapa perbedaan lain. Seperti yang saya katakan sebelumnya, ini mungkin RVM bekerja di ruang fitur atau dengan kernel atau sesuatu. Kalau tidak, Anda bisa mengganti implementasi ARD? Itu adalah regresi, dan Anda ingin klasifikasi, bukan?

@agramfort apakah Anda tahu apa-apa tentang perbedaan ARD dan RVM?

@mueller
Awalnya RVM adalah teknik regresi. Tetapi penulis menyajikan cara untuk menggunakannya untuk klasifikasi. RVM menggunakan semua jenis kernel.
Yang saya maksud adalah kemungkinan log dari ARD (persamaan 2 dari A New View of Automatic Relevance Determination) dan RVM ( persamaan 7 dari Maksimalisasi kemungkinan marginal cepat untuk model Bayesian yang jarang) adalah identik.

Kurasa aku harus membaca koran untuk mengetahui apa yang terjadi....

maaf teman-teman saya bukan orang Bayesian ... saya tidak begitu tahu
subtil...

RVM dipatenkan oleh Microsoft.

gila.

@larsmans @amueller sementara ada paten di AS untuk RVM, penulis merekomendasikan implementasi Matlab GPLv2 di halaman webnya, jadi saya kira tidak apa-apa untuk mengimplementasikannya ...
http://www.miketip.com/sparsebayes.htm

Terbaik,
Angelos

@kalxas Lisensi dan paten cukup ortogonal dan GPLv2 khususnya tidak membahas paten perangkat lunak. Hak yang Anda miliki dengan implementasi seperti itu adalah persilangan antara hak yang diberikan oleh GPL dan yang diberikan oleh pemegang paten.

Yang mengatakan, saya menemukan sementara itu bahwa mesin vektor dukungan dipatenkan oleh AT&T tetapi paten itu tampaknya tidak pernah ditegakkan. Jika sesuatu yang serupa dapat dibuktikan dari RVM, saya mungkin berubah pikiran tentang mereka.

@larsmans Saya menulis port numpy/python murni dari implementasi dlib (sangat lambat saat ini, saya akan mencoba cythonize itu). Menurut tajuk, implementasi dlib telah ada sejak 2008 dan mereka tampak baik-baik saja dengan itu. Apakah Anda mempertimbangkan untuk mengubah pikiran Anda tentang memiliki RVM di sklearn ?

Mari kita dengar pendapat @GaelVaroquaux tentang ini. Implementasi dlib tidak menunjukkan apa-apa selama Anda tidak dapat membuktikannya digunakan secara luas tanpa lisensi paten.

Apakah ada pembaruan tentang topik ini? Saya telah melihat ke RVM akhir-akhir ini dan bertanya-tanya apakah ada kode di sekitar sana ...

Saya rasa belum ada yang mencoba menerapkannya dengan cepat, dan kami masih belum yakin dengan status hukumnya.

@jlopezpena Lihatlah dlib, kodenya cukup jelas dan itu hanya header (templat). Seharusnya cukup mudah untuk membuat ekstensi C untuk digunakan dari numpy

Halo semuanya,

Saya baru-baru ini menerjemahkan program MATLAB SparseBayes Mike Tipping yang tersedia secara bebas, yang terutama mengimplementasikan RVM, dari MATLAB ke Python. Itu dapat ditemukan di sini: https://github.com/jhallock7/SparseBayes-Python . Saya menghubungi Mike Tipping, dan dia mengatakan bahwa paten Microsoft hanya untuk algoritme lambat asli, sedangkan program SparseBayes menggunakan yang lebih cepat yang dapat ditemukan di sini: http://www.miketip.com/papers/met-fastsbl.pdf . Jadi akan baik-baik saja jika beberapa bentuk programnya dilipat menjadi scikit-learn. Saya relatif baru di Python, jadi terjemahan saya tidak diragukan lagi dapat ditingkatkan atau dimodifikasi.

Terima kasih telah ingin berkontribusi dan juga terima kasih telah memeriksa status paten.
Namun ada pertanyaan lain, yaitu apakah algoritme ini berguna secara luas.

Saya belum melihat algoritme dan penggunaannya sejak terakhir kali saya membaca buku Bishop, beberapa waktu lalu.
Saya pikir contoh yang menarik adalah menunjukkan bahwa itu memberikan ketidakpastian yang lebih baik daripada kalibrasi
SVM, atau lebih cepat (mengkalibrasi SVM dan mencari melalui C membutuhkan banyak validasi silang).

@amueller RVM (terutama regresi vektor revelance (RVR)) cukup berguna dalam analisis data neuroimaging. Banyak makalah menggunakan metode ini daripada SVR untuk memprediksi. Ini akan menjadi sempurna, jika metode ini dapat ditambahkan ke kotak peralatan belajar scikit.

@amueller Saya menerapkan versi lambat RVM yang dapat menggunakan EM atau algoritma titik tetap agar sesuai dengan model (terutama untuk tujuan pembelajaran/akademik) dan perbedaan utama antara RVM dan SVR yang saya catat dari beberapa contoh adalah sparity yaitu jumlah 'dukungan ' vektor yang digunakan dalam prediksi . Dalam banyak kasus, RVM menghasilkan hasil yang sebanding dengan SVR dengan jumlah vektor pendukung hanya sebagian kecil dari apa yang digunakan SVR
( Di sini adalah salah satu contoh sederhana yang juga digunakan dalam Tipping 2001)

@amueller (Menambahkan komentar sebelumnya) Dan jelas sejumlah kecil vektor dukungan akan menyiratkan prediksi yang sangat cepat.
Keuntungan lain dari RVM adalah pengobatan probabilistik. Dengan RVM untuk setiap titik data dalam set pengujian, Anda tidak hanya menemukan estimasi titik tetapi juga distribusi prediktif

apakah RVR juga menyediakan distribusi probabilitas?

Kedengarannya seperti RVR dan RVM adalah kandidat yang masuk akal untuk dimasukkan. Saya tidak yakin tentang keadaan algoritma seni, meskipun. Apakah ini http://www.miketip.com/papers/met-fastsbl.pdf ? Itu tampaknya cukup tua. Gaya pengkodean SparseBayes.... menarik, dan menurut saya ini akan lebih baik digunakan sebagai referensi daripada sebagai dasar untuk implementasi sklearn.

Ya RVR menyediakan distribusi probabilitas, namun dalam beberapa kasus varians dari distribusi prediktif bisa lebih kecil untuk titik data di luar domain contoh set pelatihan.
Untuk makalah pengetahuan terbaik saya yang Anda sebutkan adalah versi terakhir RVM, itu juga sesuai dengan implementasi Matlab di situs web Tipping (versi 2).

Saya juga menemukan perbandingan menarik dari kecepatan RVM dan SVM dalam buku Kevin Murphy:
"RVM juga tercepat untuk dilatih. Ini terlepas dari kenyataan bahwa kode RVM ada di Matlab dan kode SVM ada di C"(Bab 14, hal.490). Namun tampaknya mereka membuat perbandingan hanya untuk kumpulan data kecil.

@amueller RVM (terutama regresi vektor revelance (RVR)) cukup berguna dalam
analisis data neuroimaging.

Saya tidak yakin (dan saya melakukan neuroimaging). Saya belum melihat yang bagus
perbandingan empiris.

Saya melihat cara yang harus dilakukan adalah memiliki RVM dalam paket terpisah, dengan
scikit-learn API, dan dorong pekerjaan empiris yang baik untuk menunjukkan
kegunaan. Jika bermanfaat, gabungkan di scikit-learn.

Beberapa studi neuroimaging telah menggunakan regresi vektor relevansi (RVR) dan
membuat perbandingan antara RVR dan SVR.
Untuk daftar beberapa:
http://www.sciencedirect.com/science/article/pii/S1053811910000108
http://www.sciencedirect.com/science/article/pii/S1053811910012644
http://www.sciencedirect.com/science/article/pii/S1053811910003459
http://www.nature.com/npp/journal/v39/n3/abs/npp2013251a.html

Dan, RVR diimplementasikan dalam kotak peralatan pengenalan pola untuk
data pencitraan saraf:
http://www.mlnl.cs.ucl.ac.uk/pronto/

Harapannya RVR bisa dimasukkan dalam scikit-learn.

Semoga sukses

Zaixu

Pada Kam, 15 Okt 2015 jam 12:57, Gael Varoquaux [email protected]
menulis:

@amueller RVM (terutama regresi vektor revelance (RVR)) cantik
berguna dalam
analisis data neuroimaging.

Saya tidak yakin (dan saya melakukan neuroimaging). Saya belum melihat yang bagus
perbandingan empiris.

Saya melihat cara yang harus dilakukan adalah memiliki RVM dalam paket terpisah, dengan
scikit-learn API, dan dorong pekerjaan empiris yang baik untuk menunjukkan
kegunaan. Jika bermanfaat, gabungkan di scikit-learn.


Balas email ini secara langsung atau lihat di GitHub
https://github.com/scikit-learn/scikit-learn/issues/1513#issuecomment -148281784
.

Saya melihat cara yang harus dilakukan adalah memiliki RVM dalam paket terpisah, dengan scikit-learn API, dan mendorong pekerjaan empiris yang baik untuk menunjukkan kegunaannya. Jika bermanfaat, gabungkan di scikit-learn.

+1

Maksud saya ada https://github.com/AmazaspShumik/Bayesian-Regression-Methods/blob/master/Relevance%20Vector%20Machine%20%26%20ARD/rvm.py yang terlihat relatif kompatibel. membutuhkan set_params dan get_params atau mewarisi dari BaseEstimator .

Dan ada https://github.com/jhallock7/SparseBayes-Python yang bisa dibungkus.

@ZaixuCui mengapa Anda menginginkannya di scikit-learn ketika ada implementasi yang siap digunakan di luar sana?

Saya cenderung setuju dengan @GaelVaroquaux dan @mblondel . Jika tidak ada yang menerbitkan algoritme dalam hampir sepuluh tahun, orang-orang tampaknya tidak terlalu tertarik. [oh, algoritma standarnya dari tahun 2003 genap. tetapi sekali lagi libsvm adalah 2005]

Karena saya menggunakan scikit belajar melakukan SVR, elastic-net.
Jadi, jika ada implementasi RVR, saya tidak perlu menggunakan matlab saat
melakukan analisis pembelajaran mesin.

Terima kasih banyak.
Semoga yang terbaik untukmu

Zaixu

Pada Kam, 15 Okt 2015 jam 11:13, Andreas Mueller [email protected]
menulis:

maksudku ada
https://github.com/AmazaspShumik/Bayesian-Regression-Methods/blob/master/Relevance%20Vector%20Machine%20%26%20ARD/rvm.py
yang terlihat relatif serasi. membutuhkan set_params dan get_params atau
mewarisi dari BaseEstimator.

Dan ada https://github.com/jhallock7/SparseBayes-Python yang bisa
dibungkus.

@ZaixuCui https://github.com/ZaixuCui mengapa Anda menginginkannya masuk
scikit-learn ketika ada implementasi yang siap digunakan di luar sana?

Saya cenderung setuju dengan @GaelVaroquaux https://github.com/GaelVaroquaux
dan @mblondel https://github.com/mblondel . Jika tidak ada yang dipublikasikan di
algoritma dalam hampir sepuluh tahun, orang tampaknya tidak terlalu tertarik.


Balas email ini secara langsung atau lihat di GitHub
https://github.com/scikit-learn/scikit-learn/issues/1513#issuecomment -148440665
.

Karena saya menggunakan scikit belajar melakukan SVR, elastic-net.
Jadi, jika ada implementasi RVR, saya tidak perlu menggunakan matlab saat
melakukan analisis pembelajaran mesin.

Anda dapat menggunakan kode Python melakukan RVR yang kami tunjukkan di
diskusi.

Ok terima kasih

Pada Senin, 19 Okt 2015 jam 08:29, Gael Varoquaux [email protected]
menulis:

Karena saya menggunakan scikit belajar melakukan SVR, elastic-net.
Jadi, jika ada implementasi RVR, saya tidak perlu menggunakan matlab
Kapan
melakukan analisis pembelajaran mesin.

Anda dapat menggunakan kode Python melakukan RVR yang kami tunjukkan di
diskusi.


Balas email ini secara langsung atau lihat di GitHub
https://github.com/scikit-learn/scikit-learn/issues/1513#issuecomment -149213151
.

Tidak bisakah kita mengimplementasikan ini sebagai kelas yang sangat ringan berdasarkan implementasi Proses Gaussian baru kita? Sejauh yang saya mengerti, RVR hanyalah nama yang diberikan kepada GP dengan jenis kernel khusus.

Meskipun ini hanya membutuhkan sedikit usaha, mendasarkan implementasi RVR pada salah satu GP mungkin bukan hal yang paling tepat untuk dilakukan? CC: @jmetzen

@amueller @GaelVaroquaux @ZaixuCui @yedtoss @jlopezpena

Hai, saya menerapkan versi cepat dari Mesin Vektor Relevansi dengan scikit-learn API,
jadi jika ada yang berniat untuk menggunakannya jangan ragu untuk melakukannya.

Kode: https://github.com/AmazaspShumik/sklearn_bayes/blob/master/sklearn_bayes/rvm/fast_rvm.py

Contoh: https://github.com/AmazaspShumik/sklearn_bayes/blob/master/ipython_notebooks_tutorials/rvm_ard/rvm_demo.ipynb

Ada empat kelas yang diimplementasikan dalam kode:
-RegresiARD
-KlasifikasiARD
-RVC
-RVR

Jadi semoga RegressionARD dan ClassificationARD dapat bermanfaat juga

@AmazaspShumik terima kasih banyak atas implementasinya. Kerja bagus :+1:

@AmazaspShumik

Terima kasih banyak atas usaha Anda.
Saya pasti akan mencoba paket ini.

Semoga tercapai segala yang terbaik untukmu.

Zaixu

Adakah yang mengalami masalah dalam menerapkan metode predict_proba @AmazaspShumik?

adakah di sini yang memiliki perpustakaan untuk RVM di php? saya tidak mengerti dengan RVm dapat menjelaskan untuk saya?

ada yang punya perpustakaan RVM untuk PHP?

RVM dipatenkan oleh Microsoft.

Paten akan segera kedaluwarsa

2019-09-04
Kedaluwarsa yang diantisipasi

Beberapa tautan diskusi yang menunjuk ke implementasi @AmazaspShumik rusak, taruh saja di sini untuk orang-orang yang tertarik (dan beberapa implementasi lainnya):

https://github.com/AmazaspShumik/sklearn_bayes - RVM + beberapa implementasi algs lainnya
https://github.com/JamesRitchie/scikit-rvm - implementasi sederhana menggunakan scipy
https://github.com/siavashserver/neonrvm - Implementasi C dengan Python binding

Juga, berikut adalah koleksi makalah yang relevan:
http://www.miketip.com/sparsebayes.htm

Paten Microsoft telah kedaluwarsa. Bisakah kita menambahkannya ke sklearn?

Ini dengan mudah menghapus persyaratan standar, jadi saya tidak mengerti mengapa tidak. Mungkin memiliki beberapa contoh yang baik/meyakinkan mungkin menarik. scikit-rvm dan sklearn_bayes tampaknya tidak terawat tetapi mungkin masih berguna.
Mungkin sebagian besar membutuhkan seorang juara sekarang yang benar-benar ingin bekerja.

Pada buku Murphy, dia mengklaim kinerja RVM benar-benar mirip dengan SVM tetapi memiliki keuntungan sebagai metode probabilistik sejati sehingga memberikan probabilitas yang dikalibrasi sebagai jawaban. Di sini https://github.com/probml/pmtk3/blob/master/docs/tutorial/html/tutKernelClassif.html ia membandingkan metode menggunakan kumpulan data kecil

Bisakah Anda memberikan tautan ke versi yang diberikan?
Juga, tidak mengherankan bahwa itu pada kumpulan data kecil, mengingat kemungkinan memiliki masalah skalabilitas.

Saya akan mencoba untuk bekerja pada implementasi. Bantuan apa pun akan sangat dihargai.

IIRC, salah satu keunggulan RVM dibandingkan SVM, adalah Anda dapat menemukan parameter C yang optimal tanpa melakukan optimasi pass.
Saya ingin tahu apakah penulis asli bersedia memberikan kontribusi implementasi referensinya.
Yah, itu ada di Matlab dan Mike Tipping bahkan tidak ada di github...

Hai @amueller dan semuanya! Kami melihat utas ini dan memutuskan untuk mengimplementasikan versi RVM yang kompatibel dengan sklearn (https://github.com/Mind-the-Pineapple/sklearn-rvm). Kami mendasarkan banyak dari apa yang kami lakukan pada implementasi JamesRitchie. Akan sangat bagus jika seseorang bersedia untuk melihatnya dan masukan serta kontribusi (@themrzmaster) dipersilakan :)
Kami memiliki rencana untuk memelihara repo ini, mengimplementasikan versi cepat pada versi 0.2 dan berharap mungkin suatu hari kode ini dapat berguna untuk repositori utama scikit-learn 😊

Hai @amueller dan semuanya! Kami melihat utas ini dan memutuskan untuk mengimplementasikan versi RVM yang kompatibel dengan sklearn (https://github.com/Mind-the-Pineapple/sklearn-rvm). Kami mendasarkan banyak dari apa yang kami lakukan pada implementasi JamesRitchie. Akan sangat bagus jika seseorang bersedia untuk melihatnya dan masukan serta kontribusi (@themrzmaster) dipersilakan :)
Kami memiliki rencana untuk memelihara repo ini, mengimplementasikan versi cepat pada versi 0.2 dan berharap mungkin suatu hari kode ini dapat berguna untuk repositori utama scikit-learn 😊

Hai @PedroFerreiradaCosta
Saya telah menguji api scikit-learn ini dan sepertinya masih sangat lambat (sepertinya belum merespons). Apakah menurut Anda alasannya mungkin diimplementasikan pada Windows? Di bawah ini adalah apa yang saya gunakan:
EMRVC(kernel='rbf', gamma='scale', n_iter_posterior=10, max_iter=500, compute_score=True , verbose=True ) Terima kasih atas jawaban Anda @themrzmaster @PedroFerreiradaCosta

Hai @mustuner ! Terima kasih telah mencoba API kami!
RVM memang memiliki kompleksitas komputasi yang lebih tinggi daripada misalnya SVM (O(M^3)), yang mungkin membuatnya lebih lambat untuk kasus di mana Anda memiliki banyak fungsi basis. Either way, ada beberapa hal yang dapat Anda lakukan untuk mempercepat proses. Anda dapat menghitung sebelumnya matriks kernel dan memasukkannya ke algoritme kami alih-alih X, (set kernel='precomputed') atau Anda juga dapat mengurangi skala alpha_threshold (diatur secara default pada 1e5). Harap diingat bahwa opsi kedua ini dapat menyebabkan akurasi model yang lebih rendah.
Semoga ini membantu! Dan jangan ragu untuk membuka masalah bagi kami untuk membantu lebih lanjut.

Terbaik,
Pedro

Hai @mustuner ! Terima kasih telah mencoba API kami!
RVM memang memiliki kompleksitas komputasi yang lebih tinggi daripada misalnya SVM (O(M^3)), yang mungkin membuatnya lebih lambat untuk kasus di mana Anda memiliki banyak fungsi basis. Either way, ada beberapa hal yang dapat Anda lakukan untuk mempercepat proses. Anda dapat menghitung sebelumnya matriks kernel dan memasukkannya ke algoritme kami alih-alih X, (set kernel='precomputed') atau Anda juga dapat mengurangi skala alpha_threshold (diatur secara default pada 1e5). Harap diingat bahwa opsi kedua ini dapat menyebabkan akurasi model yang lebih rendah.
Semoga ini membantu! Dan jangan ragu untuk membuka masalah bagi kami untuk membantu lebih lanjut.

Terbaik,
Pedro

Terima kasih @PedroFerreiradaCosta Biarkan saya mencobanya

Apakah halaman ini membantu?
0 / 5 - 0 peringkat