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.