Scikit-learn: Máquina de vectores de relevancia (RVM)

Creado en 3 ene. 2013  ·  68Comentarios  ·  Fuente: scikit-learn/scikit-learn

RVM es un marco bayesiano para obtener soluciones escasas para tareas de regresión y clasificación. Se utilizó un modelo de forma idéntica a SVM (Support Vector Machine). Resuelve las siguientes desventajas de SVM:
- El número de funciones básicas en SVM crece linealmente con el tamaño del conjunto de entrenamiento.
En RVM, comenzamos con una base 0 y actualizamos (agregamos / eliminamos) de forma incremental el conjunto de funciones de base hasta la convergencia.

- Las predicciones de SVM no son probabilísticas mientras que las RVM son probabilísticas

- Es necesario en SVM estimar el parámetro de compensación de margen 'C' que no es el caso en RVM

- El kernel de SVM debe ser positivo definido. En RVM podemos usar cualquier kernel.

Ya está implementado en dlib http://dlib.net/dlib/svm/rvm_abstract.h.html y también hay una implementación de matlab aquí http://www.vectoranomaly.com/downloads/downloads.htm. Estos códigos deberían servir como guía.
Creo que será una buena idea agregarlo a scikit-learn.

Referencias:
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

Comentario más útil

¡Hola @amueller y a todos! Vimos este hilo y decidimos implementar una versión de RVM compatible con sklearn (https://github.com/Mind-the-Pineapple/sklearn-rvm). Basamos mucho de lo que hicimos en la implementación de JamesRitchie. Sería genial si alguien estuviera dispuesto a echarle un vistazo y los comentarios y contribuciones (@themrzmaster) son bienvenidos :)
Tenemos planes de mantener este repositorio, implementar la versión rápida en la versión 0.2 y esperamos que algún día este código pueda ser útil para el repositorio principal de scikit-learn 😊 🍍

Todos 68 comentarios

Tendría que volver a leerlo, pero en general creo que los RVM serían una buena adición.
dlib tiene licencia boost, que debería ser compatible. Sin embargo, puede que no sea tan fácil de envolver debido al estilo de codificación de refuerzo pesado.
¿Está optimizado el problema con SMO? ¿Es sensato si implementamos SMO?

Tengo que agarrar a mi obispo.

¿Cuál es la relación entre ARD y RVM? ¿RVM es solo la versión de "función básica" de ARD?

Por cierto, ¿a alguien le ha molestado alguna vez el hecho de que la sección Generalized Linear Models no contiene ningún modelo generalizado?

Ok, entonces deberíamos usar el sequential sparse learning algorithm Bishop p. 352 siguiendo, supongo.
Conócete a ti mismo;)

Me pregunto si existe un método similar para ARD. Eso sería genial ya que la implementación actual de ARD es bastante lenta: - /

No, la implementación de RVM definitivamente no usa SMO. Creo que SMO solo se usa para la optimización de SVM.
Sí, deberíamos usar sequential sparse learning algorithm en la referencia 1, página 7. (¿está en alfil p 352? ¿Cuál)? Este algoritmo es lo suficientemente "simple" y podemos escribirlo sin usar dlib. Estaba pensando en escribirlo en python y luego usar cython para la optimización. En este caso, podemos aprovechar al máximo la implementación de matlab. ¿Qué piensas?
De todos modos, debería ser posible escribir en C ++. Pero para eso necesitaremos una buena biblioteca de álgebra lineal en C ++. No estoy seguro de si por defecto scikit-learn viene con uno.

Bishop es "Aprendizaje automático y reconocimiento de patrones".

El algoritmo probablemente no sea del todo fácil de acertar. Si quieres empezar con esto, definitivamente será un proyecto más grande. Si está interesado y desea implementarlo de alguna manera, adelante.

Implementarlo también es bastante diferente a incorporarlo en scikit-learn. Eso también implica escribir pruebas, documentación y una guía de usuario, y un código bonito.

Para un primer intento, definitivamente deberías usar solo numpy. Utiliza blas internamente y, por lo tanto, es bastante rápido.
Acelerar el uso de Cython solo tiene sentido si hay mucha sobrecarga de Python. Si todo el tiempo se dedica a las llamadas BLAS, usar Cython no tiene mucho sentido.

Está bien para Cython y numpy. No sabía que el obispo hablaba de RVM.
Para la relación ARD y RVM. No sé mucho sobre ARD. Pero en la referencia 2, los autores dijeron que RVM se basa en ARD: "Llamamos a los vectores de entrenamiento asociados con los vectores de 'relevancia' de pesos distintos de cero restantes, en deferencia al principio de determinación automática de relevancia que motiva el enfoque presentado" Página 3 (213) línea 8.
De todos modos, ¿cómo funciona ARD?

ARD también se explica en el libro Bishops y en la guía del usuario . Pone una diagonal gaussiana antes de los pesos e intenta estimar las varianzas, que (según tengo entendido) es lo mismo que hace RVM. ¿Es eso correcto?

Me doy cuenta de que el árbitro mencionó:

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

no es la implementación que usamos. Creo que @vmichel implementó el
Enfoque de Bishop, mientras que este documento propone un enfoque de punto fijo similar al
una aproximación de descenso coordinado. Este código definitivamente necesita algo de amor ...

Gracias @agramfort , me preguntaba sobre eso. No revisé los detalles, pero pensé que el papel era la única referencia ...

Le agradecería mucho si pudiera agregar un comentario allí citando el capítulo del obispo que se usó y tal vez diciendo que deberíamos implementar el otro documento en su lugar.

(por cierto, de las cosas más lentas en el conjunto de pruebas en este momento es ajustar ARD en el conjunto de datos de Boston en las pruebas comunes)

Gracias @agramfort , me preguntaba sobre eso. No revisé los detalles, pero pensé que el papel era la única referencia ...

Le agradecería mucho si pudiera agregar un comentario allí citando el capítulo del obispo que se usó y tal vez diciendo que deberíamos implementar el otro documento en su lugar.

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

Por cierto, ¿a alguien le ha molestado alguna vez el hecho de que la sección Lineal generalizado
¿Los modelos no contienen ningún modelo generalizado?

Lo hace: regresiones logísticas.

Me pregunto si existe un método similar para ARD. Eso sería genial como el
La implementación actual de ARD es bastante lenta: - /

Creo que el solucionador rápido más prometedor de ARD es implementar el
estrategia expuesta en:
http://books.nips.cc/papers/files/nips20/NIPS2007_0976.pdf

Puse un resumen de un código que escribí hace un tiempo.

Si alguien quiere trabajar en ARD, pensé que podría ser útil.

https://gist.github.com/4494613

ADVERTENCIA: no se ha probado mucho y no garantizo que sea correcto, pero
parece funcionar.

@amueller
He analizado ARD en http://books.nips.cc/papers/files/nips20/NIPS2007_0976.pdf y creo que RVM y ARD quieren optimizar la misma función objetivo. La diferencia aparece en el método utilizado para optimizar esta función. En RVM, los autores notaron que la mayor parte del peso estará cerca de cero y usaron esto para derivar un algoritmo "rápido".

Eso suena raro. Si el objetivo es el mismo, debería poder utilizar los mismos métodos para la optimización, ¿verdad?

Sí, seguro que debería, pero supongo que los autores de RVM utilizaron una estrategia de optimización diferente para tener un algoritmo más rápido y más disperso.

@yedtoss Estoy bastante seguro de que hay alguna otra diferencia. Como dije antes, esto podría ser que RVM funcione en un espacio de características o con un kernel o algo así. De lo contrario, ¿podría simplemente reemplazar la implementación de ARD? Sin embargo, eso es regresión y quieres una clasificación, ¿verdad?

@agramfort ¿sabes algo sobre la diferencia entre ARD y RVM?

@amueller
Inicialmente, RVM es una técnica de regresión. Pero los autores presentaron una forma de usarlo para la clasificación. RVM utilizó cualquier tipo de kernel.
Lo que quiero decir es que la probabilidad logarítmica de ARD (ecuación 2 de A New View of Automatic Relevance Determination) y de RVM (ecuación 7 de maximización de probabilidad marginal rápida para modelos bayesianos dispersos) son idénticas.

Supongo que tendría que leer los periódicos para saber qué está pasando ...

lo siento chicos, no soy muy bayesiano ... no conozco bien el
sutilezas ...

Los RVM están patentados por Microsoft.

loco.

@larsmans @amueller aunque hay una patente en los EE. UU. para RVM, el autor recomienda una implementación de GPLv2 Matlab en su página web, así que supongo que está bien implementarla ...
http://www.miketipping.com/sparsebayes.htm

Mejor,
Angelos

@kalxas La licencia y la patente son bastante ortogonales y la GPLv2 en particular no abordó las patentes de software. Los derechos que tiene con dicha implementación son la intersección de los derechos otorgados por la GPL y los otorgados por el titular de la patente.

Dicho esto, descubrí mientras tanto que las máquinas de vectores de soporte están patentadas por AT&T, pero aparentemente la patente nunca se hizo cumplir. Si se puede probar algo similar de las RVM, podría cambiar de opinión al respecto.

@larsmans Escribí un puerto puro numpy / python de la implementación de dlib (terriblemente lento en este momento, intentaré cythonize). Según el encabezado, el implem de dlib ha existido desde 2008 y parece estar bien con él. ¿Consideraría cambiar de opinión acerca de tener RVM en sklearn?

Escuchemos la opinión de @GaelVaroquaux sobre esto. El implem dlib no muestra nada mientras no puedas probar que se usa ampliamente sin una licencia de patente.

¿Hay alguna actualización sobre este tema? He estado investigando RVM últimamente y me preguntaba si había algún código por ahí ...

No creo que nadie haya intentado una implementación rápida y todavía no estamos seguros sobre el estado legal.

@jlopezpena Eche un vistazo a dlib, el código es bastante claro y solo es encabezado (plantillas). Debería ser bastante fácil construir una extensión C para usar desde numpy

Hola a todos,

Recientemente traduje el programa MATLAB SparseBayes de Mike Tipping, que implementa principalmente RVM, de MATLAB a Python. Se puede encontrar aquí: https://github.com/jhallock7/SparseBayes-Python . Me comuniqué con Mike Tipping y me dijo que la patente de Microsoft es solo para el algoritmo lento original, mientras que el programa SparseBayes usa el más rápido que se encuentra aquí: http://www.miketipping.com/papers/met-fastsbl.pdf . Por lo tanto, estaría bien si alguna forma de su programa se doblara en scikit-learn. Soy relativamente nuevo en Python, por lo que mi traducción sin duda puede mejorarse o modificarse.

Gracias por querer contribuir y también gracias por comprobar el estado de la patente.
Sin embargo, hay otra pregunta, que es si estos algoritmos son ampliamente útiles.

No he mirado el algoritmo y su uso desde la última vez que leí el libro de Bishop, que fue hace un tiempo.
Creo que un ejemplo interesante sería mostrar que proporciona una mayor incertidumbre que calibrar
una SVM, o que es más rápido (calibrar una SVM y buscar en C necesita mucha validación cruzada).

@amueller RVM (principalmente regresión vectorial de revelanza (RVR)) es bastante útil en el análisis de datos de neuroimagen. Muchos artículos utilizan este método en lugar de RVS para predecir. Será perfecto si este método se puede agregar a la caja de herramientas de scikit learn.

@amueller Implementé una versión lenta de RVM que puede usar EM o un algoritmo de punto fijo para adaptarse al modelo (principalmente para fines de aprendizaje / académico) y la principal diferencia entre RVM y SVR que noté en un par de ejemplos es la escasez, es decir, el número de 'soporte 'vectores utilizados en la predicción. En muchos casos, RVM produce resultados comparables con SVR, siendo el número de vectores de soporte solo una fracción de lo que utiliza SVR.
( aquí hay un ejemplo simple que también se usa en Tipping 2001)

@amueller (Agregando al comentario anterior) Y, obviamente, una pequeña cantidad de vectores de soporte implicará una predicción muy rápida.
Otra ventaja de la RVM son los tratamientos probabilísticos. Con RVM para cada punto de datos en el conjunto de prueba, encontrará no solo estimaciones puntuales sino también distribución predictiva

¿El RVR también proporciona distribuciones de probabilidad?

Parece que RVR y RVM son candidatos razonables para su inclusión. Sin embargo, no estoy seguro acerca de los algoritmos de última generación. ¿Es http://www.miketipping.com/papers/met-fastsbl.pdf ? Eso parece bastante antiguo. El estilo de codificación de SparseBayes es ... interesante, y creo que serviría mejor como referencia que como base para la implementación de sklearn.

Sí, el RVR proporciona distribuciones de probabilidad; sin embargo, en algunos casos, la varianza de la distribución predictiva puede ser menor para los puntos de datos fuera del dominio del ejemplo del conjunto de entrenamiento.
Según mi conocimiento, el documento que mencionaste es la última versión de RVM y también corresponde a la implementación de Matlab en el sitio web de Tipping (versión 2).

También encontré una comparación interesante de la velocidad RVM y SVM en el libro de Kevin Murphy:
"RVM también es más rápido de entrenar. Esto es a pesar de que el código RVM está en Matlab y el código SVM está en C" (Capítulo 14, p.490). Sin embargo, parece que solo hicieron comparaciones para pequeños conjuntos de datos.

@amueller RVM (principalmente regresión vectorial de revelanza (RVR)) es bastante útil en
análisis de datos de neuroimagen.

No estoy convencido (y hago neuroimagen). No he visto nada bueno
comparación empírica.

Veo que el camino a seguir es tener RVM en un paquete separado, con
API scikit-learn y fomentamos un buen trabajo empírico para mostrar su
utilidad. Si son útiles, combínelos en scikit-learn.

Algunos estudios de neuroimagen han utilizado la regresión de vectores de relevancia (RVR) y
hizo comparaciones entre RVR y SVR.
Para enumerar algunos:
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

Y, el RVR se implementa en una caja de herramientas de reconocimiento de patrones para
datos de neuroimagen:
http://www.mlnl.cs.ucl.ac.uk/pronto/

Espero que RVR se pueda incorporar en scikit-learn.

Los mejores deseos

Zaixu

El jueves 15 de octubre de 2015 a las 12:57 p.m., Gael Varoquaux [email protected]
escribió:

@amueller RVM (principalmente regresión vectorial de revelanza (RVR)) es bastante
útil en
análisis de datos de neuroimagen.

No estoy convencido (y hago neuroimagen). No he visto nada bueno
comparación empírica.

Veo que el camino a seguir es tener RVM en un paquete separado, con
API scikit-learn y fomentamos un buen trabajo empírico para mostrar su
utilidad. Si son útiles, combínelos en scikit-learn.

-
Responda a este correo electrónico directamente o véalo en GitHub
https://github.com/scikit-learn/scikit-learn/issues/1513#issuecomment -148281784
.

Veo que el camino a seguir es tener RVM en un paquete separado, con la API scikit-learn, y fomentar un buen trabajo empírico para mostrar su utilidad. Si son útiles, combínelos en scikit-learn.

+1

Quiero decir que hay https://github.com/AmazaspShumik/Bayesian-Regression-Methods/blob/master/Relevance%20Vector%20Machine%20%26%20ARD/rvm.py que parece relativamente compatible. necesita set_params y get_params o heredar de BaseEstimator .

Y hay https://github.com/jhallock7/SparseBayes-Python que podría envolverse.

@ZaixuCui, ¿por qué quieres que esté en scikit-learn cuando hay una implementación lista para usar?

Tiendo a estar de acuerdo con @mblondel . Si nadie publicó sobre algoritmos en casi diez años, la gente no parece estar muy interesada. [Oh, el algoritmo estándar es de 2003 incluso. pero de nuevo libsvm es 2005]

Porque uso scikit aprende a hacer SVR, elastic-net.
Entonces, si hay una implementación de RVR, no necesitaré usar matlab cuando
realizar análisis de aprendizaje automático.

Muchas gracias.
Te desea todo lo mejor

Zaixu

El jueves 15 de octubre de 2015 a las 11:13 a. M., Andreas Mueller [email protected]
escribió:

Quiero decir que hay
https://github.com/AmazaspShumik/Bayesian-Regression-Methods/blob/master/Relevance%20Vector%20Machine%20%26%20ARD/rvm.py
que parece relativamente compatible. necesita set_params y get_params o
heredando de BaseEstimator.

Y hay https://github.com/jhallock7/SparseBayes-Python que podría
ser envuelto.

@ZaixuCui https://github.com/ZaixuCui ¿Por qué quieres que esté en
scikit-learn cuando hay una implementación lista para usar?

Tiendo a estar de acuerdo con https://github.com/GaelVaroquaux
y @mblondel https://github.com/mblondel . Si nadie publicó en
algoritmos en casi diez años, la gente no parece estar muy interesada.

-
Responda a este correo electrónico directamente o véalo en GitHub
https://github.com/scikit-learn/scikit-learn/issues/1513#issuecomment -148440665
.

Porque uso scikit aprende a hacer SVR, elastic-net.
Entonces, si hay una implementación de RVR, no necesitaré usar matlab cuando
realizar análisis de aprendizaje automático.

Puede usar el código Python haciendo RVR que señalamos en el
discusión.

OK gracias

El lunes 19 de octubre de 2015 a las 8:29 a. M., Gael Varoquaux [email protected]
escribió:

Porque uso scikit aprende a hacer SVR, elastic-net.
Entonces, si hay una implementación de RVR, no necesitaré usar matlab
Cuándo
realizar análisis de aprendizaje automático.

Puede usar el código Python haciendo RVR que señalamos en el
discusión.

-
Responda a este correo electrónico directamente o véalo en GitHub
https://github.com/scikit-learn/scikit-learn/issues/1513#issuecomment -149213151
.

¿No podríamos implementar esto como una clase muy ligera basada en nuestra nueva implementación del Proceso Gaussiano? Por lo que tengo entendido, RVR es solo el nombre que se le da a un GP con un tipo especial de kernel.

Aunque esto requeriría solo un esfuerzo mínimo, ¿basar la implementación de RVR en la de GP puede no ser lo más apropiado? CC: @jmetzen

@amueller @GaelVaroquaux @ZaixuCui @yedtoss @jlopezpena

Hola, implementé la versión rápida de Relevance Vector Machine con la API scikit-learn,
así que si alguien tiene la intención de usarlo, no dude en hacerlo.

Código: https://github.com/AmazaspShumik/sklearn_bayes/blob/master/sklearn_bayes/rvm/fast_rvm.py

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

Hay cuatro clases implementadas en el código:
-RegresiónARD
-ClasificaciónARD
-RVC
-RVR

Por lo que puede ser RegressionARD y ClassificationARD también pueden ser útiles

@AmazaspShumik muchas gracias por su implementación. Buen trabajo: +1:

@AmazaspShumik

Muchas gracias por sus esfuerzos.
Definitivamente probaré este paquete.

Te deseo lo mejor.

Zaixu

¿Alguien ha tenido problemas para implementar el método @AmazaspShumik predict_proba?

¿Alguien aquí tiene biblioteca para RVM en php? No entiendo con RVm, ¿me lo pueden explicar?

¿Alguien tiene la biblioteca RVM para PHP?

Los RVM están patentados por Microsoft.

La patente caducará pronto

2019-09-04
Vencimiento anticipado

Algunos señalados en los enlaces de discusión a la implementación de @AmazaspShumik están rotos, solo

https://github.com/AmazaspShumik/sklearn_bayes - RVM + alguna otra implementación de algs
https://github.com/JamesRitchie/scikit-rvm - implementaciones simples usando scipy
https://github.com/siavashserver/neonrvm - Implementación de C con enlace de Python

Además, aquí está la colección de artículos relevantes:
http://www.miketipping.com/sparsebayes.htm

Hay una implementación C ++ de RVM allí (material complementario de un artículo):
https://pubs.acs.org/doi/abs/10.1021/ci200128w
Precisamente aquí:
https://pubs.acs.org/doi/suppl/10.1021/ci200128w/suppl_file/ci200128w_si_001.zip

La patente de Microsoft ha expirado. ¿Podríamos agregarlo a sklearn?

Elimina fácilmente los requisitos estándar, así que no veo por qué no. Quizás sea interesante tener algunos ejemplos buenos / convincentes. scikit-rvm y sklearn_bayes parecen sin mantenimiento, pero aún pueden ser útiles.
Probablemente necesite sobre todo un campeón ahora que realmente quiera hacer el trabajo.

En el libro de Murphy, afirma que el rendimiento de las RVM es realmente similar al de las SVM, pero tiene la ventaja de ser un método probabilístico verdadero, por lo que proporciona probabilidades calibradas como respuestas. Aquí https://github.com/probml/pmtk3/blob/master/docs/tutorial/html/tutKernelClassif.html comparó los métodos utilizando un pequeño conjunto de datos

¿Puede proporcionar un enlace a la versión renderizada?
Además, no es sorprendente que esté en un conjunto de datos pequeño, dado que es probable que tenga problemas de escalabilidad.

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

Intentaré trabajar en la implementación. Cualquier ayuda sería muy apreciada.

IIRC, una ventaja de RVM sobre SVM, es que puede encontrar el parámetro C óptimo sin hacer un pase de optimización.
Me pregunto si el autor original estaría dispuesto a contribuir con su implementación de referencia.
Bueno, está en Matlab y Mike Tipping ni siquiera está en github ...

¡Hola @amueller y a todos! Vimos este hilo y decidimos implementar una versión de RVM compatible con sklearn (https://github.com/Mind-the-Pineapple/sklearn-rvm). Basamos mucho de lo que hicimos en la implementación de JamesRitchie. Sería genial si alguien estuviera dispuesto a echarle un vistazo y los comentarios y contribuciones (@themrzmaster) son bienvenidos :)
Tenemos planes de mantener este repositorio, implementar la versión rápida en la versión 0.2 y esperamos que algún día este código pueda ser útil para el repositorio principal de scikit-learn 😊 🍍

¡Hola @amueller y a todos! Vimos este hilo y decidimos implementar una versión de RVM compatible con sklearn (https://github.com/Mind-the-Pineapple/sklearn-rvm). Basamos mucho de lo que hicimos en la implementación de JamesRitchie. Sería genial si alguien estuviera dispuesto a echarle un vistazo y los comentarios y contribuciones (@themrzmaster) son bienvenidos :)
Tenemos planes de mantener este repositorio, implementar la versión rápida en la versión 0.2 y esperamos que algún día este código pueda ser útil para el repositorio principal de scikit-learn 😊 🍍

Hola @PedroFerreiradaCosta
He probado esta API de scikit-learn y parece que todavía es muy lenta (parece que todavía no responde). ¿Crees que la razón podría ser que esté implementado en Windows? A continuación se muestra lo que utilicé:
EMRVC (kernel = 'rbf', gamma = 'scale', n_iter_posterior = 10, max_iter = 500, compute_score = True, verbose = True) Gracias por tu respuesta @themrzmaster @PedroFerreiradaCosta

¡Hola @mustuner ! ¡Gracias por probar nuestra API!
El RVM tiene una complejidad computacional más alta que, por ejemplo, el SVM (O (M ^ 3)), lo que podría hacerlo más lento para los casos en los que tiene una gran cantidad de funciones básicas. De cualquier manera, hay varias cosas que puede hacer para acelerar el proceso. Puede precalcular la matriz del kernel y enviarla a nuestro algoritmo en lugar de X, (establezca kernel = 'precomputed') o también puede disminuir la escala del alpha_threshold (establecido por defecto en 1e5). Tenga en cuenta que esta segunda opción puede reducir la precisión del modelo.
¡Espero que esto ayude! Y no dude en abrir un problema para que podamos ayudarlo más.

Mejor,
Pedro

¡Hola @mustuner ! ¡Gracias por probar nuestra API!
El RVM tiene una complejidad computacional más alta que, por ejemplo, el SVM (O (M ^ 3)), lo que podría hacerlo más lento para los casos en los que tiene una gran cantidad de funciones básicas. De cualquier manera, hay varias cosas que puede hacer para acelerar el proceso. Puede precalcular la matriz del kernel y enviarla a nuestro algoritmo en lugar de X, (establezca kernel = 'precomputed') o también puede disminuir la escala del alpha_threshold (establecido por defecto en 1e5). Tenga en cuenta que esta segunda opción puede reducir la precisión del modelo.
¡Espero que esto ayude! Y no dude en abrir un problema para que podamos ayudarlo más.

Mejor,
Pedro

Gracias @PedroFerreiradaCosta Déjame probar eso

¿Fue útil esta página
0 / 5 - 0 calificaciones