¿Cuándo utilizar un Random Forest
sobre SVM
y viceversa?
Entiendo que la cross-validation
comparació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?
Respuestas:
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.n m n×n n2
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.
fuente
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.
fuente
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.
fuente
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
fuente