11 votos

Casos de uso de RBF SVM (frente a la regresión logística y el bosque aleatorio)

Máquinas de vectores de apoyo con núcleo de la función de base radial es un clasificador supervisado de propósito general.

Aunque conozco los fundamentos teóricos de estas SVM y sus puntos fuertes, no conozco casos en los que sean el método preferido. Entonces, ¿existe una clase de problemas para los que las SVM RBF son superiores a otras técnicas de ML? (Ya sea en términos de puntuación, u otros - como la robustez, la facilidad de inicio, la interpretabilidad, etc.)

Lo pregunto, ya que mi enfoque por defecto se centra en la regresión logística (quizás con algunas interacciones), el bosque aleatorio y un poco de redes neuronales. Ninguno de mis amigos haciendo ML (algunos son ganadores de Kaggle) es un SVM-usuario (pero puede ser un artefacto de mi comunidad, o los problemas que tratan).

9voto

BillyJean Puntos 118

Intentaré responder a esta pregunta con una combinación de pruebas publicadas, experiencia personal y especulaciones.

A) Pruebas publicadas.

El único documento que conozco que ayuda a responder la pregunta es Delgado et al 2014 - ¿Necesitamos cientos de clasificadores para resolver problemas de clasificación del mundo real? - JMLR que ejecuta cientos de algoritmos e implementaciones diferentes en 121 conjuntos de datos de la UCI. Descubren que, aunque el RBF SVM no es el "mejor" algoritmo (si no recuerdo mal, es el de los bosques aleatorios), está entre los 3 (o 5) mejores.

Si se considera que su selección de conjuntos de datos es una "buena muestra" de los problemas del mundo real, entonces los SVM son definitivamente un algoritmo que debería probarse en nuevos problemas, ¡pero uno debería probar primero los bosques aleatorios!

Los límites para generalizar ese resultado son que los conjuntos de datos son casi todos altos y delgados (n>>p), no muy dispersos -lo que especulo que debería ser más un problema para la RF- y no muy grandes (tanto n como p).

Por último, y siguiendo con las pruebas publicadas, recomiendo dos sitios que comparan diferentes implementaciones de bosques aleatorios:

B) Experiencia personal.

Creo que trabajos como el de Delgado y otros muy importante para la comunidad de aprendizaje automático, así que intenté replicar sus resultados en algunas condiciones diferentes. Ejecuté unos 15 algoritmos diferentes en más de 100 conjuntos de datos binarios (del conjunto de datos de Delgado). También creo que fui más cuidadoso que ellos en la selección de los hiperparámetros.

Mis resultados son que el SVM fue el "mejor algoritmo" (rango medio 4,9). Mi opinión es que SVM pasó RF porque el conjunto de datos original contenía muchos problemas multiclase - que voy a discutir en la parte de la especulación - debe ser un problema para SVM.

EDIT (Jun/16):

Pero la RF es camino camino más rápido, y fue el segundo mejor algoritmo (rango medio 5,6), seguido de gbm (5,8), nnets (7,2), etc.). No probé la regresión logística estándar en estos problemas, sino que probé una red elástica (L1 y L2 regularizada LR) pero no tuvo un buen rendimiento (rango medio 8,3)~

Todavía no he terminado de analizar los resultados ni de redactar el documento, por lo que ni siquiera puedo señalar un informe técnico con los resultados. Con suerte, en algunas semanas podré reeditar esta respuesta y señalar un informe técnico con los resultados.

El documento está disponible en http://arxiv.org/abs/1606.00930 Resulta que después del análisis completo RF y SVM son casi equivalentes en términos de tasa de error esperada y SVM es el más rápido (¡para mi sorpresa!). Ya no soy tan categórico a la hora de recomendar RF (por motivos de velocidad).

Por lo tanto, mi experiencia personal es que, aunque la SVM puede conseguir un poco más de precisión, casi siempre es mejor utilizar una RF.

Además, para los problemas más grandes, puede ser imposible utilizar un solucionador SVM por lotes (nunca he utilizado un solucionador SVM en línea como LASVM u otros).

Por último, sólo he utilizado la regresión logística en una situación. Estaba haciendo algo de ingeniería de características "intensa" en un problema de clasificación de imágenes (como - combinar o no dos descripciones diferentes de la imagen, y la dimensionalidad de las descripciones). Y utilicé la regresión logística para seleccionar entre las muchas alternativas (porque no hay búsqueda de hiperparámetros en LR). Una vez que nos asentamos en las mejores características (según LR) utilizamos una RF (seleccionando los mejores hiperparámetros) para obtener el clasificador final.

C) Especulación

Nunca he trabajado seriamente en problemas multiclase, pero mi sensación es que los SVM no son tan buenos en ellos. El problema no es la cuestión entre las soluciones de uno contra uno o de uno contra todos, sino que todas las implementaciones que conozco utilizan los mismos hiperparámetros para todos los clasificadores (OVO u OVA). La selección de los hiperparámetros correctos para SVM es tan costosa que ninguna de las implementaciones que conozco hará una búsqueda para cada uno de los clasificadores. Especulo que esto es un problema para SVM (¡pero no un problema para RF!).

Por otra parte, para los problemas multiclase yo iría directamente a RF.

0voto

Vishal Patel Puntos 46

No tengo suficientes privilegios para poder escribir comentarios, así que me limitaré a dar mi opinión/observación aquí como respuesta.

Según mi experiencia, los clasificadores de vectores de apoyo (SVC) suelen estar a la par o superar a los demás métodos cuando las clases binarias están equilibradas. Cuando las clases no están equilibradas, los SVC tienden a tener un mal rendimiento.

No suelo tratar problemas multiclase, pero he visto algunos buenos resultados con SVC para problemas multiclase también.

Otra cosa que he notado es que la maldición de la dimensionalidad no parece afectar tanto a la VPC como a otras técnicas de modelado. En otras palabras, a medida que añado más términos en el modelo, las otras técnicas empiezan a tener un mal rendimiento en el conjunto de prueba (o de espera) en comparación con el conjunto de entrenamiento. Pero no tanto cuando utilizo la VPC. Por este motivo, si la parsimonia del modelo no es su prioridad, la VPC puede ser una mejor opción, ya que puede añadir muchos términos sin que haya un exceso de ajuste como en los otros métodos.

Uno de los problemas que tengo con el VPC es que no proporciona implícitamente una medida (como la probabilidad predicha) para poder ordenar las observaciones. Usted podría utilizar Platt Scaling (implementado en el paquete sklearn.svm en Python), pero he visto algunas inconsistencias. (Puedo compartir los detalles si alguien está interesado).

No estoy seguro de que esto responda realmente a tu pregunta, pero estas son mis observaciones. Espero que le sirvan de ayuda.

0voto

Thieme Hennis Puntos 31

RF y (RBF) SVM tienen diferentes teorías detrás de ellos, pero suponiendo que usted tiene suficientes datos, se desempeñan de manera similar. Ambos pueden aprender funciones complejas y lidiar con variables ruidosas y poco informativas y con valores atípicos.

Si se trata de obtener los mejores resultados para algo como un kaggle, se ensamblarían múltiples modelos incluyendo RF y SVM de todos modos.

En entornos no kaggle, podría considerar lo difícil que es implementar el modelo, ponerlo en producción, hacer una predicción, interpretarlo, explicarlo a un gerente, etc.

La SVM (lineal o RBF altamente regularizada) sería definitivamente preferible si se tiene una pequeña cantidad de datos o se trata de un curso de dimensionalidad. Hay un par de razones para ello, una es que es mejor buscar el hiperplano de máximo margen en lugar de una serie de mejores divisiones en sus características, también no hay generalmente necesidad de un límite complejo porque en el espacio de alta dimensionalidad habrá algún hiperplano que puede separar los datos de todos modos. Otro problema es que la RF es más difícil de ajustar (tiene más parámetros que ajustar), por lo que se necesitan más datos.

Otro pensamiento, la validación cruzada puede ser muy barato y rápido para SVM, especialmente LOOCV. Dado que sólo unas pocas muestras son vectores de apoyo (no siempre), usted no tiene que volver a entrenar su clasificador en cada pliegue, pero sólo cuando los datos que están ahora en el conjunto de prueba eran vectores de apoyo antes. Esto también puede facilitar el aprendizaje en línea.

Además, podría ser más barato almacenar vectores de soporte que árboles completos.

A menudo es mejor hacer un modelo probabilístico que un clasificador. Por lo tanto, hay que hacer primero el modelo y luego la decisión. En ese caso se prefiere la regresión logística. Y aún puedes usar kernels y regularización para hacer que se comporte como quieres. Además, no utilizará la RF para responder a preguntas como: corregir por edad, estilo de vida, sexo y educación, ¿el consumo de alcohol aumenta la posibilidad de sufrir un ataque al corazón?

Algunos recursos adicionales que encontré interesantes: https://www.quora.com/What-are-the-advantages-of-different-classification-algorithms http://videolectures.net/solomon_caruana_wslmw/

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X