Scikit-learn: Machine à vecteur de pertinence (RVM)

Créé le 3 janv. 2013  ·  68Commentaires  ·  Source: scikit-learn/scikit-learn

RVM est un cadre bayésien permettant d'obtenir des solutions éparses aux tâches de régression et de classification. Il utilisait un modèle de forme identique au SVM (Support Vector Machine). Il résout les inconvénients suivants de SVM :
-- Le nombre de fonctions de base dans SVM augmente linéairement avec la taille de l'ensemble d'apprentissage
Dans RVM, nous commençons avec la base 0 et mettons à jour de manière incrémentielle (ajout/suppression) l'ensemble de la fonction de base jusqu'à la convergence.

-- Les prédictions SVM ne sont pas probabilistes alors que les RVM sont probabilistes

-- Il est nécessaire dans SVM d'estimer le paramètre de compromis de marge 'C' ce qui n'est pas le cas dans RVM

-- Le noyau SVM doit être défini positif. Dans RVM, nous pouvons utiliser n'importe quel noyau.

Il est déjà implémenté dans dlib http://dlib.net/dlib/svm/rvm_abstract.h.html et il existe également une implémentation matlab ici http://www.vectoranomaly.com/downloads/downloads.htm. Ces codes devraient servir de guide.
Je pense que ce sera une bonne idée de l'ajouter à scikit-learn.

Les références :
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

Commentaire le plus utile

Salut @amueller et tout le monde ! Nous avons vu ce fil et avons décidé de mettre en œuvre une version compatible sklearn du RVM (https://github.com/Mind-the-Pineapple/sklearn-rvm). Nous avons basé une grande partie de ce que nous avons fait sur l'implémentation de JamesRitchie. Ce serait formidable si quelqu'un voulait bien y jeter un coup d'œil et les commentaires et contributions (@themrzmaster) sont les bienvenus :)
Nous avons l'intention de maintenir ce référentiel, d'implémenter la version rapide sur la version 0.2 et espérons qu'un jour ce code pourra peut-être être utile pour le référentiel principal de scikit-learn 😊 🍍

Tous les 68 commentaires

Il faudrait que je le relise, mais en général, je pense que les RVM seraient un bon ajout.
dlib est sous licence boost qui devrait être compatible. Cependant, il n'est peut-être pas si facile à envelopper en raison du style de codage intensif.
Le problème est-il optimisé à l'aide de SMO ? Est-il judicieux de mettre en œuvre SMO ?

Je dois attraper mon évêque.

Quelle est la relation entre ARD et RVM ? RVM n'est-il que la version « fonction de base » d'ARD ?

Au fait, est-ce que quelqu'un est déjà dérangé par le fait que la section Generalized Linear Models ne contienne aucun modèle généralisé ?

Ok donc nous devrions utiliser le sequential sparse learning algorithm Bishop p. 352 suivant je suppose?
Connaissez-vous ;)

Je me demande s'il existe une méthode similaire pour ARD? Ce serait cool car l'implémentation actuelle de l'ARD est assez lente :-/

Non, l'implémentation de RVM n'utilise définitivement pas SMO. Je pense que SMO n'est utilisé que pour l'optimisation SVM.
Oui, nous devrions utiliser le sequential sparse learning algorithm dans la référence 1 page 7. (est-ce dans l'évêque p 352? lequel). Cet algorithme est assez "simple" et nous pouvons l'écrire sans utiliser dlib. Je pensais l'écrire en python, puis utiliser cython pour l'optimisation. Dans ce cas, nous pouvons tirer pleinement parti de l'implémentation matlab. Qu'en penses-tu?
Quoi qu'il en soit, il devrait être possible d'écrire en C++. Mais pour cela nous aurons besoin d'une bonne bibliothèque d'algèbre linéaire en C++. Je ne sais pas si par défaut scikit-learn en propose un.

Bishop est "Machine Learning et Pattern Recognition".

L'algorithme n'est probablement pas tout à fait facile à comprendre. Si vous voulez vous lancer là-dessus, ce sera certainement un projet plus important. Si vous êtes intéressé et que vous souhaitez le mettre en œuvre de toute façon, allez-y.

L'implémenter est également assez différent de l'intégrer dans scikit-learn. Cela implique également d'écrire des tests, de la documentation et un guide de l'utilisateur - et un joli code.

Pour un premier essai, vous devez absolument utiliser numpy. Il utilise blas en interne et est donc assez rapide.
Accélérer l'utilisation de Cython n'a de sens que s'il y a beaucoup de surcharge de python. Si tout le temps est passé dans les appels BLAS, l'utilisation de Cython n'a pas beaucoup de sens.

OK pour Cython et numpy. Je ne savais pas que Bishop parlait de RVM.
Pour la relation ARD et RVM. Je ne connais pas grand-chose à l'ARD. Mais dans la référence 2, les auteurs ont dit que RVM est basé sur ARD : « Nous appelons ces vecteurs d'entraînement associés aux poids non nuls restants des vecteurs de « pertinence », par respect pour le principe de détermination automatique de la pertinence qui motive l'approche présentée. » (213) ligne 8.
De toute façon, comment fonctionne ARD ?

L'ARD est également expliqué dans le livre Bishops et dans le guide de l'utilisateur . Il met un a priori gaussien diagonal sur les poids et essaie d'estimer les variances, ce qui (si je comprends bien) est le même que RVM. Est-ce exact?

Je me rends compte que la réf mentionnait :

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

n'est pas l'implémentation que nous utilisons. Je pense que @vmichel a implémenté le
Bishop, tandis que cet article propose une approche à point fixe similaire à
une approche de descente coordonnée. Ce code a vraiment besoin d'amour...

Merci @agramfort , je me

J'apprécierais beaucoup si vous pouviez y ajouter un commentaire citant le chapitre de l'évêque qui a été utilisé en disant peut-être que nous devrions mettre en œuvre l'autre document à la place.

(d'ailleurs, l'une des choses les plus lentes de la suite de tests en ce moment est l'ajustement d'ARD sur l'ensemble de données de Boston dans les tests courants)

Merci @agramfort , je me

J'apprécierais beaucoup si vous pouviez y ajouter un commentaire citant le chapitre de l'évêque qui a été utilisé en disant peut-être que nous devrions mettre en œuvre l'autre document à la place.

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

Btw est quelqu'un qui a déjà été dérangé par le fait que la section Linéaire Généralisé
Les modèles ne contiennent pas de modèles généralisés ?

C'est le cas : des régressions logistiques.

Je me demande s'il existe une méthode similaire pour ARD? Ce serait cool comme
la mise en œuvre actuelle de l'ARD est assez lente :-/

Je crois que le solveur rapide le plus prometteur d'ARD est de mettre en œuvre le
stratégie exposée dans :
http://books.nips.cc/papers/files/nips20/NIPS2007_0976.pdf

J'ai mis sur l'essentiel un code écrit il y a quelque temps.

Si quelqu'un veut travailler sur ARD, j'ai pensé que cela pourrait être utile.

https://gist.github.com/4494613

ATTENTION : ce n'est pas beaucoup testé et je ne garantis pas l'exactitude mais c'est
semble fonctionner.

@amueller
J'ai analysé ARD dans http://books.nips.cc/papers/files/nips20/NIPS2007_0976.pdf et je pense que RVM et ARD veulent optimiser la même fonction objectif. La différence apparaît dans la méthode utilisée pour optimiser cette fonction. Dans RVM, les auteurs ont remarqué que la majeure partie du poids sera proche de zéro et ils l'ont utilisé pour dériver un algorithme "rapide".

Cela semble étrange. Si l'objectif est le même, vous devriez pouvoir utiliser les mêmes méthodes d'optimisation, n'est-ce pas ?

Oui, bien sûr, mais je suppose que les auteurs de RVM ont utilisé une stratégie d'optimisation différente pour avoir un algorithme plus rapide et plus clairsemé.

@yedtoss Je suis presque sûr qu'il y a une autre différence. Comme je l'ai déjà dit, cela pourrait être que RVM fonctionne dans un espace de fonctionnalités ou avec un noyau ou quelque chose. Sinon, vous pourriez simplement remplacer l'implémentation ARD ? C'est une régression, cependant, et vous voulez une classification, n'est-ce pas ?

@agramfort savez-vous quelque chose sur la différence entre ARD et RVM ?

@amueller
Initialement RVM est une technique de régression. Mais les auteurs ont présenté un moyen de l'utiliser pour la classification. RVM utilisait n'importe quel type de noyau.
Ce que je veux dire, c'est que le log de vraisemblance de l'ARD (équation 2 d'une nouvelle vue de la détermination automatique de la pertinence) et de la RVM (équation 7 de la maximisation de la vraisemblance marginale rapide pour les modèles bayésiens clairsemés) sont identiques.

Je suppose que je devrais lire les journaux pour savoir ce qui se passe...

désolé les gars je ne suis pas vraiment un gars bayésien... je ne connais pas bien le
subtilités...

Les RVM sont brevetés par Microsoft.

fou.

@larsmans @amueller bien qu'il existe un brevet aux États-Unis pour RVM, l'auteur recommande une implémentation GPLv2 Matlab sur sa page Web, donc je suppose qu'il est correct de l'implémenter...
http://www.miketipping.com/sparsebayes.htm

Meilleur,
Angelos

@kalxas La licence et le brevet sont assez orthogonaux et la GPLv2 en particulier ne traite pas des brevets logiciels. Les droits que vous avez avec une telle implémentation sont l'intersection des droits accordés par la GPL et ceux accordés par le titulaire du brevet.

Cela dit, j'ai découvert entre-temps que les machines à vecteurs de support sont brevetées par AT&T, mais le brevet n'a apparemment jamais été appliqué. Si quelque chose de similaire peut être prouvé concernant les RVM, je pourrais changer d'avis à leur sujet.

@larsmans J'ai écrit un pur port numpy/python d'implémentation de dlib (très lent pour le moment, je vais essayer de le cythoniser). Selon l'en-tête, l'outil de dlib existe depuis 2008 et cela semble bien avec cela. Envisageriez-vous de changer d'avis à propos d'avoir RVM dans sklearn ?

Écoutons l'avis de @GaelVaroquaux à ce sujet. L'implément dlib ne montre rien tant que vous ne pouvez pas prouver qu'il est largement utilisé sans licence de brevet.

Y a-t-il des mises à jour sur ce sujet? J'ai récemment examiné les RVM et je me demandais s'il y avait du code là-bas ...

Je pense que personne n'a essayé une mise en œuvre rapide, et nous ne sommes toujours pas sûrs du statut juridique.

@jlopezpena Jetez un œil à dlib, le code est assez clair et son en-tête (modèles) uniquement. Il devrait être assez facile de créer une extension C à utiliser à partir de numpy

Salut à tous,

J'ai récemment traduit le programme SparseBayes MATLAB de Mike Tipping, disponible gratuitement, qui implémente principalement le RVM, de MATLAB en Python. Il peut être trouvé ici : https://github.com/jhallock7/SparseBayes-Python . J'ai contacté Mike Tipping, et il m'a dit que le brevet de Microsoft ne concernait que l'algorithme lent d'origine, alors que le programme SparseBayes utilise le plus rapide trouvé ici : http://www.miketipping.com/papers/met-fastsbl.pdf . Donc, ce serait bien si une forme de son programme était intégrée à scikit-learn. Je suis relativement nouveau sur Python, donc ma traduction peut sans aucun doute être améliorée ou modifiée.

Merci de vouloir contribuer et aussi merci d'avoir vérifié l'état du brevet.
Il y a cependant une autre question, à savoir si cet algorithme est largement utile.

Je n'ai pas regardé l'algorithme et son utilisation depuis la dernière fois que j'ai lu le livre de Bishop, il y a quelque temps.
Je pense qu'un exemple intéressant serait de montrer que cela donne une meilleure incertitude que le calibrage
un SVM, ou qu'il est plus rapide (le calibrage d'un SVM et la recherche sur C nécessitent beaucoup de validation croisée).

@amueller RVM (principalement la régression vectorielle de pertinence (RVR)) est assez utile dans l'analyse des données de neuroimagerie. De nombreux articles utilisent cette méthode plutôt que la SVR pour prédire. Ce sera parfait si cette méthode peut être ajoutée à la boîte à outils scikit learn.

@amueller J'ai implémenté une version lente de RVM qui peut utiliser un algorithme EM ou à virgule fixe pour s'adapter au modèle (principalement à des fins d'apprentissage / académique) et la différence majeure entre RVM et SVR que j'ai notée à partir de quelques exemples est la rareté, c'est-à-dire le nombre de « support ' vecteurs utilisés dans la prédiction . Dans de nombreux cas, RVM produit des résultats comparables à SVR, le nombre de vecteurs de support n'étant qu'une fraction de ce que SVR utilise
( voici un exemple simple qui est également utilisé dans Tipping 2001)

@amueller (Ajout au commentaire précédent) Et évidemment, un petit nombre de vecteurs de support impliquera une prédiction très rapide.
Un autre avantage de la RVM est le traitement probabiliste. Avec RVM pour chaque point de données dans l'ensemble de test, vous trouvez non seulement une estimation ponctuelle, mais également une distribution prédictive

RVR fournit-il également des distributions de probabilité ?

On dirait que RVR et RVM sont des candidats raisonnables pour l'inclusion. Je ne suis pas sûr de l'état de l'art des algorithmes, cependant. Est-ce http://www.miletipping.com/papers/met-fastsbl.pdf ? Cela semble assez vieux. Le style de codage SparseBayes est... intéressant, et je pense qu'il servirait mieux de référence que de base pour l'implémentation de sklearn.

Oui, la RVR fournit des distributions de probabilité, mais dans certains cas, la variance de la distribution prédictive peut être plus petite pour les points de données en dehors du domaine de l' exemple d' ensemble d'apprentissage .
Autant que je sache, l'article que vous avez mentionné est la dernière version de RVM, il correspond également à l'implémentation de Matlab sur le site Web de Tipping (version 2).

J'ai également trouvé une comparaison intéressante des vitesses RVM et SVM dans le livre de Kevin Murphy :
« RVM est également le plus rapide à entraîner. Ceci malgré le fait que le code RVM est en Matlab et que le code SVM est en C » (Chapitre 14, p.490). Cependant, il semble qu'ils n'aient fait des comparaisons que pour de petits ensembles de données.

@amueller RVM (principalement la régression vectorielle de pertinence (RVR)) est assez utile dans
analyse des données de neuroimagerie.

Je ne suis pas convaincu (et je fais de la neuroimagerie). je n'ai pas vu de bon
comparaison empirique.

Je vois que la voie à suivre est d'avoir des RVM dans un package séparé, avec
l'API scikit-learn, et encouragent les bons travaux empiriques pour montrer leur
utilité. S'ils sont utiles, fusionnez-les dans scikit-learn.

Certaines études de neuroimagerie ont utilisé la régression vectorielle de pertinence (RVR) et
fait des comparaisons entre RVR et SVR.
Pour en citer quelques-uns :
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

Et, le RVR est implémenté dans une boîte à outils de reconnaissance de formes pour
données de neuro-imagerie :
http://www.mlnl.cs.ucl.ac.uk/pronto/

Espérons que RVR puisse être incorporé dans scikit-learn.

Meilleurs vœux

Zaixu

Le jeu. 15 oct. 2015 à 12:57, Gael Varoquaux [email protected]
a écrit:

@amueller RVM (principalement la régression vectorielle de pertinence (RVR)) est assez
utile dans
analyse des données de neuroimagerie.

Je ne suis pas convaincu (et je fais de la neuroimagerie). je n'ai pas vu de bon
comparaison empirique.

Je vois que la voie à suivre est d'avoir des RVM dans un package séparé, avec
l'API scikit-learn, et encouragent les bons travaux empiriques pour montrer leur
utilité. S'ils sont utiles, fusionnez-les dans scikit-learn.

-
Répondez directement à cet e-mail ou consultez-le sur GitHub
https://github.com/scikit-learn/scikit-learn/issues/1513#issuecomment -148281784
.

Je vois que la voie à suivre est d'avoir les RVM dans un package séparé, avec l'API scikit-learn, et d'encourager un bon travail empirique pour montrer leur utilité. S'ils sont utiles, fusionnez-les dans scikit-learn.

+1

Je veux dire qu'il y a https://github.com/AmazaspShumik/Bayesian-Regression-Methods/blob/master/Relevance%20Vector%20Machine%20%26%20ARD/rvm.py qui semble relativement compatible. nécessite set_params et get_params ou héritant de BaseEstimator .

Et il y a https://github.com/jhallock7/SparseBayes-Python qui pourrait être encapsulé.

@ZaixuCui pourquoi voulez-vous qu'il soit dans scikit-learn alors qu'il existe une implémentation prête à l'emploi ?

J'ai tendance à être d'accord avec @GaelVaroquaux et @mblondel . Si personne n'a publié sur les algorithmes depuis près de dix ans, les gens ne semblent pas très intéressés. [oh, l'algorithme standard date de 2003 même. mais encore une fois, libsvm est 2005]

Parce que j'utilise scikit apprendre à faire SVR, Elastic-net.
Donc, s'il y a une implémentation RVR, je n'aurai pas besoin d'utiliser matlab quand
faire une analyse d'apprentissage automatique.

Merci beaucoup.
vous souhaite tout le meilleur

Zaixu

Le jeu. 15 octobre 2015 à 11:13, Andreas Mueller [email protected]
a écrit:

Je veux dire qu'il y a
https://github.com/AmazaspShumik/Bayesian-Regression-Methods/blob/master/Relevance%20Vector%20Machine%20%26%20ARD/rvm.py
qui semble relativement compatible. a besoin de set_params et get_params ou
héritant de BaseEstimator.

Et il y a https://github.com/jhallock7/SparseBayes-Python qui pourrait
être enveloppé.

@ZaixuCui https://github.com/ZaixuCui pourquoi voulez-vous qu'il soit dans
scikit-learn quand il existe une implémentation prête à l'emploi ?

Je suis plutôt d'accord avec @GaelVaroquaux https://github.com/GaelVaroquaux
et @mblondel https://github.com/mblondel . Si personne n'a publié sur
algorithmes en près de dix ans, les gens ne semblent pas très intéressés.

-
Répondez directement à cet e-mail ou consultez-le sur GitHub
https://github.com/scikit-learn/scikit-learn/issues/1513#issuecomment-148440665
.

Parce que j'utilise scikit apprendre à faire SVR, Elastic-net.
Donc, s'il y a une implémentation RVR, je n'aurai pas besoin d'utiliser matlab quand
faire une analyse d'apprentissage automatique.

Vous pouvez utiliser le code Python faisant RVR que nous avons indiqué dans le
discussion.

D'accord merci

Le lun 19 oct 2015 à 8h29, Gael Varoquaux [email protected]
a écrit:

Parce que j'utilise scikit apprendre à faire SVR, Elastic-net.
Donc, s'il y a une implémentation RVR, je n'aurai pas besoin d'utiliser matlab
lorsque
faire une analyse d'apprentissage automatique.

Vous pouvez utiliser le code Python faisant RVR que nous avons indiqué dans le
discussion.

-
Répondez directement à cet e-mail ou consultez-le sur GitHub
https://github.com/scikit-learn/scikit-learn/issues/1513#issuecomment -149213151
.

Ne pourrions-nous pas implémenter cela en tant que classe très légère basée sur notre nouvelle implémentation de processus gaussien ? Pour autant que je sache, RVR n'est que le nom donné à un GP avec un type particulier de noyau.

Bien que cela ne nécessite qu'un effort minimal, baser la mise en œuvre de RVR sur celle de GP n'est peut-être pas la chose la plus appropriée à faire ? CC : @jmetzen

@amueller @GaelVaroquaux @ZaixuCui @yedtoss @jlopezpena

Bonjour, j'ai implémenté une version rapide de la machine à vecteurs de pertinence avec l'API scikit-learn,
donc si quelqu'un a l'intention de l'utiliser, n'hésitez pas à le faire.

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

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

Il y a quatre classes implémentées dans le code :
-RégressionARD
-Classification ARD
-RVC
-RVR

Alors peut-être que RegressionARD et ClassificationARD peuvent être utiles aussi

@AmazaspShumik merci beaucoup pour votre mise en œuvre. Excellent travail :+1:

@AmazaspShumik

Merci beaucoup pour vos efforts.
Je vais certainement essayer ce pack.

Je vous souhaite le meilleur.

Zaixu

Quelqu'un a-t-il eu du mal à implémenter la méthode @AmazaspShumik predict_proba ?

quelqu'un ici a-t-il une bibliothèque pour RVM sur php ? je ne comprends pas avec RVm peut m'expliquer?

quelqu'un a-t-il la bibliothèque RVM pour PHP ?

Les RVM sont brevetés par Microsoft.

Le brevet expirera bientôt

2019-09-04
Expiration anticipée

Certains liens de discussion pointés vers l'implémentation

https://github.com/AmazaspShumik/sklearn_bayes - RVM + quelques autres implémentations algs
https://github.com/JamesRitchie/scikit-rvm - implémentations simples utilisant scipy
https://github.com/siavashserver/neonrvm -

Voici également une collection de documents pertinents :
http://www.miketipping.com/sparsebayes.htm

Il y a une implémentation C++ de RVM là-dedans (matériel supplémentaire d'un article):
https://pubs.acs.org/doi/abs/10.1021/ci200128w
Justement ici :
https://pubs.acs.org/doi/suppl/10.1021/ci200128w/suppl_file/ci200128w_si_001.zip

Le brevet Microsoft a expiré. Pourrions-nous éventuellement l'ajouter à sklearn?

Il efface facilement les exigences standard, donc je ne vois pas pourquoi. Peut-être qu'il pourrait être intéressant d'avoir des exemples bons / convaincants. scikit-rvm et sklearn_bayes semblent non maintenus mais peuvent toujours être utiles.
Il a probablement surtout besoin d'un champion maintenant qui veut vraiment travailler.

Dans le livre de Murphy, il affirme que les performances des RVM sont vraiment similaires à celles des SVM, mais ont l'avantage d'être une véritable méthode probabiliste, de sorte qu'elles donnent des probabilités calibrées comme réponses. Ici https://github.com/probml/pmtk3/blob/master/docs/tutorial/html/tutKernelClassif.html il a comparé les méthodes en utilisant un petit ensemble de données

Pouvez-vous fournir un lien vers la version rendue ?
De plus, il n'est pas surprenant qu'il s'agisse d'un petit ensemble de données, étant donné qu'il est susceptible d'avoir des problèmes d'évolutivité.

@amueller http://htmlpreview.github.io/?https://github.com/probml/pmtk3/blob/master/docs/tutorial/html/tutKernelClassif.html

Je vais essayer de travailler sur la mise en œuvre. Toute aide serait très appréciée.

IIRC, l'un des avantages de RVM par rapport à SVM, est que vous pouvez trouver le paramètre C optimal sans effectuer de passe d'optimisation.
Je me demande si l'auteur original serait prêt à contribuer à sa mise en œuvre de référence.
Eh bien, c'est dans Matlab et Mike Tipping n'est même pas sur github...

Salut @amueller et tout le monde ! Nous avons vu ce fil et avons décidé de mettre en œuvre une version compatible sklearn du RVM (https://github.com/Mind-the-Pineapple/sklearn-rvm). Nous avons basé une grande partie de ce que nous avons fait sur l'implémentation de JamesRitchie. Ce serait formidable si quelqu'un voulait bien y jeter un coup d'œil et les commentaires et contributions (@themrzmaster) sont les bienvenus :)
Nous avons l'intention de maintenir ce référentiel, d'implémenter la version rapide sur la version 0.2 et espérons qu'un jour ce code pourra peut-être être utile pour le référentiel principal de scikit-learn 😊 🍍

Salut @amueller et tout le monde ! Nous avons vu ce fil et avons décidé de mettre en œuvre une version compatible sklearn du RVM (https://github.com/Mind-the-Pineapple/sklearn-rvm). Nous avons basé une grande partie de ce que nous avons fait sur l'implémentation de JamesRitchie. Ce serait formidable si quelqu'un voulait bien y jeter un coup d'œil et les commentaires et contributions (@themrzmaster) sont les bienvenus :)
Nous avons l'intention de maintenir ce référentiel, d'implémenter la version rapide sur la version 0.2 et espérons qu'un jour ce code pourra peut-être être utile pour le référentiel principal de scikit-learn 😊 🍍

Salut @PedroFerreiradaCosta
J'ai testé cette api scikit-learn et il semble qu'elle soit toujours aussi lente (elle ne semble pas encore répondre). Pensez-vous que la raison pourrait être qu'elle est implémentée sur Windows ? Ci-dessous ce que j'ai utilisé :
EMRVC(kernel='rbf', gamma='scale', n_iter_postterior=10, max_iter=500, compute_score=True , verbose=True ) Merci pour votre réponse @themrzmaster @PedroFerreiradaCosta

Salut @mustuner ! Merci d'avoir essayé notre API !
Le RVM a une complexité de calcul plus élevée que par exemple le SVM (O(M^3)), ce qui peut le rendre plus lent pour les cas où vous avez un grand nombre de fonctions de base. Dans tous les cas, vous pouvez faire un certain nombre de choses pour accélérer le processus. Vous pouvez pré-calculer la matrice du noyau et l'alimenter dans notre algorithme au lieu de X, (définir kernel='precomputed') ou vous pouvez également diminuer l'échelle de alpha_threshold (défini par défaut à 1e5). Veuillez garder à l'esprit que cette deuxième option peut entraîner une diminution de la précision du modèle.
J'espère que cela t'aides! Et n'hésitez pas à ouvrir un problème pour que nous puissions vous aider davantage.

Meilleur,
Pedro

Salut @mustuner ! Merci d'avoir essayé notre API !
Le RVM a une complexité de calcul plus élevée que par exemple le SVM (O(M^3)), ce qui peut le rendre plus lent pour les cas où vous avez un grand nombre de fonctions de base. Dans tous les cas, vous pouvez faire un certain nombre de choses pour accélérer le processus. Vous pouvez pré-calculer la matrice du noyau et l'alimenter dans notre algorithme au lieu de X, (définir kernel='precomputed') ou vous pouvez également diminuer l'échelle de alpha_threshold (défini par défaut à 1e5). Veuillez garder à l'esprit que cette deuxième option peut entraîner une diminution de la précision du modèle.
J'espère que cela t'aides! Et n'hésitez pas à ouvrir un problème pour que nous puissions vous aider davantage.

Meilleur,
Pedro

Merci @PedroFerreiradaCosta Laissez-moi essayer ça

Cette page vous a été utile?
0 / 5 - 0 notes