¿Cuándo usar Random Forest sobre SVM y viceversa?


28

¿Cuándo utilizar un Random Forestsobre SVMy viceversa?

Entiendo que la cross-validationcomparación de modelos es un aspecto importante para elegir un modelo, pero aquí me gustaría aprender más sobre las reglas generales y la heurística de los dos métodos.

¿Alguien puede explicar las sutilezas, fortalezas y debilidades de los clasificadores, así como los problemas que mejor se adaptan a cada uno de ellos?


1
El puntaje de precisión es la única medida verdadera de su rendimiento relativo, aunque puede haber una técnica anterior que indique qué tipo de clasificador de los muchos disponibles podría ser mejor para su tipo de datos si tiene suerte. Puede estar más limitado por el tiempo que lleva ajustar sus parámetros, en cuyo caso el Bosque aleatorio probablemente será una propuesta más fácil de los dos.
image_doctor

Respuestas:


29

Yo diría que la elección depende en gran medida de los datos que tiene y cuál es su propósito. Algunas "reglas generales".

Random Forest es intrínsecamente adecuado para problemas multiclase, mientras que SVM es intrínsecamente de dos clases. Para un problema multiclase, deberá reducirlo a múltiples problemas de clasificación binaria.

Random Forest funciona bien con una mezcla de características numéricas y categóricas. Cuando las características están en varias escalas, también está bien. En términos generales, con Random Forest puedes usar los datos tal como están. SVM maximiza el "margen" y por lo tanto se basa en el concepto de "distancia" entre diferentes puntos. Depende de usted decidir si la "distancia" es significativa. Como consecuencia, la codificación única para características categóricas es algo que debe hacer. Además, min-max u otra escala es muy recomendable en el paso de preprocesamiento.

Si tiene datos con puntos características, un paso intermedio en SVM es construir una matriz (piense en los requisitos de memoria para el almacenamiento) calculando productos de punto (complejidad computacional). Por lo tanto, como regla general, SVM apenas es escalable más allá de 10 ^ 5 puntos. Un gran número de características (características homogéneas con una distancia significativa, un píxel de imagen sería un ejemplo perfecto) generalmente no es un problema.nmn×nn2

Para un problema de clasificación, Random Forest te da la probabilidad de pertenecer a la clase. SVM le da la distancia al límite, aún necesita convertirlo a probabilidad de alguna manera si necesita probabilidad.

Para esos problemas, donde se aplica SVM, generalmente funciona mejor que Random Forest.

SVM le ofrece "vectores de soporte", es decir, puntos en cada clase más cercanos al límite entre clases. Pueden ser de interés por sí mismos para la interpretación.


Solo para agregar: no es sencillo para Random Forests darle probabilidades. Necesita una implementación probabilística de un árbol de decisión o calibrar su modelo de bosque aleatorio ajustado después si desea probabilidades 'verdaderas'.
Archie

5

Los modelos SVM funcionan mejor en datos dispersos que los árboles en general. Por ejemplo, en la clasificación de documentos puede tener miles, incluso decenas de miles de características y en cualquier vector de documento dado, solo una pequeña fracción de estas características puede tener un valor mayor que cero. Probablemente hay otras diferencias entre ellos, pero esto es lo que encontré para mis problemas.


3

Realmente depende de lo que desea lograr, cómo se ven sus datos, etc. SVM generalmente funcionará mejor en dependencias lineales, de lo contrario, necesitará un núcleo no lineal y la elección del núcleo puede cambiar los resultados. Además, los SVM son menos interpretables, por ejemplo, si desea explicar por qué la clasificación era como era, no será trivial. Los árboles de decisión tienen una mejor capacidad de interpretación, funcionan más rápido y, si tiene variables categóricas / numéricas, está bien, además: las dependencias no lineales se manejan bien (dado N lo suficientemente grande). También entrenan más rápido que SVM en general, pero tienen tendencia a sobreajustar ...

También probaría la regresión logística: gran clasificador interpretable)

Para resumir, la regla general es probar cualquier cosa y comparar lo que le da mejores resultados / interpretación.


1

Para complementar los buenos puntos ya mencionados:

De qué necesitamos Cientos de clasificadores para resolver problemas del mundo real Clasificación? Los bosques aleatorios tienen más probabilidades de lograr un mejor rendimiento que los bosques aleatorios.

Además, la forma en que se implementan los algoritmos (y por razones teóricas) los bosques aleatorios suelen ser mucho más rápidos que los SVM (no lineales). De hecho, como @Ianenok, los SVM tienden a ser inutilizables más allá de los 10 000 puntos de datos.

Sin embargo, se sabe que los SVM funcionan mejor en algunos conjuntos de datos específicos (imágenes, datos de microarrays ...).

Entonces, una vez más, la validación cruzada es de hecho la mejor manera de saber qué método funciona mejor.

Fuente: bosque aleatorio vs SVM


um? "los bosques aleatorios tienen más probabilidades de lograr un mejor rendimiento que los bosques aleatorios".
Sanjay Manohar
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.