¿Qué algoritmo de aprendizaje automático es el mejor para clasificar más de 40 clases?

Aquí hay un consejo general, cuando tiene 500 funciones, tiene al menos [matemática] 2 ^ {500} = 3 * 10 ^ {150} [/ matemática] (suponiendo que sean simplemente binarias, peor si no lo son) posibles enumeraciones para sus datos. Eso es MUCHO más que las muestras que tienes (ver Maldición de dimensionalidad). Es posible que no vea suficientes datos de entrenamiento por combinación de características, y simplemente puede sobreajustar. Básicamente, su algoritmo de clasificación elegirá un combo de características en particular como el ‘tell’ de cada punto en particular y lo clasificará correctamente.

Le recomiendo que realice un preprocesamiento, por ejemplo, puede usar PCA para reducir la dimensionalidad, o simplemente analizar la correlación entre las características y ver si puede eliminar aquellas que contienen información redundante.

La elección de su algoritmo de clasificación viene más tarde y depende realmente de la estructura de su problema. En general, los bosques aleatorios con impulso, SVM y redes neuronales son algoritmos de ‘caja negra’ que puedes probar. Pero nunca es aconsejable utilizar un método sin comprender realmente si se aplica bien a su caso.

En la clase de Máquinas de vectores de soporte, puede intentar usar la Máquina de vectores de soporte gemelo que es adecuada para conjuntos de datos no balanceados. Aquí está el documento: @Twin admite máquinas de vectores para la clasificación de patrones

Para la clasificación multiclase, los enfoques habituales son one-v / s-rest o one-v / s-one, aunque un enfoque más efectivo podría ser el uso de códigos de corrección de errores: @ [cs / 9501101] Solución de problemas de aprendizaje multiclase mediante salida de corrección de errores Códigos

Sugerencia de Ryan Rifkin en Clasificación de múltiples clases: use clasificadores binarios regualrizados fuertes (SVM, RLSC) y luego use clasificadores N (Uno contra todos -OVA) o N (N-1) clasificadores (Todos contra todos – AVA) y calcule el resultados individuales

Esto dependerá en gran medida de

1) Tamaño de sus datos
2) Número y tipo de características
3) Velocidad de entrenamiento necesaria
4) Velocidad de clasificación necesaria
5) Si los datos necesitan ser entrenados en línea o fuera de línea
6) Si necesita el algoritmo en paralelo u otras restricciones similares

Su pregunta es muy general para tener una respuesta correcta.