Existen muchos métodos para la clasificación de varias clases. Dos opciones clásicas, que no son específicas de SVM son:
Clasificación de uno contra todos (OVA):
suponga que tiene clases A, B, C y D. En lugar de hacer una clasificación de cuatro vías, entrene cuatro clasificadores binarios: A vs. no A, B vs. no B , C frente a no-C y D frente a no-D. Luego, elija la clase positiva que sea "mejor" (p. Ej., La más alejada del margen en las cuatro carreras). Si ninguna de las clasificaciones es positiva (es decir, no todas son X), elija el "opuesto" de la clase que sea peor (por ejemplo, el más cercano al margen).
All-vs-All:
entrena todos los pares posibles de clasificaciones. Clasifique las clases por algún factor (por ejemplo, # de veces seleccionadas) y elija la mejor.
Lo que funciona mejor ha sido polémico:
Duan y Keerthi tienen un estudio empírico que sugiere un método específico de todos contra todos, mientras que Rifkin y Klautau abogan por un esquema de uno contra todos. Incluso hay esquemas en los que uno aprende códigos de corrección de errores que describen las etiquetas de clase, en lugar de las etiquetas en sí.
¡Buena suerte!
Editar: lo que realmente quieres, particularmente para OVA, es la probabilidad posterior de cada clase. Para algunos métodos, como Naive Bayes, es trivial salir. Los SVM generalmente no le dan probabilidades, pero hay formas de calcularlos. Vea el artículo de 1999 de John Platt "Resultados probabilísticos para máquinas de vectores de soporte ..."
classes
en el código? Parece ser inútil.