2010-10-19 21 views
14

Estoy usando un clasificador SVM multidimensional (SVM.NET, un contenedor para libSVM) para clasificar un conjunto de características.¿Puede una SVM aprender de forma incremental?

Dado un modelo SVM, ¿es posible incorporar nuevos datos de entrenamiento sin tener que recalcular todos los datos anteriores? Supongo que otra forma de expresarlo sería: ¿es SVM mutable?

+0

empecé a ir a través del libro de Bishop a ayudar a responder a esto, pero creo que es posible obtener una respuesta más detallada sobre en http: //mathoverflow.net/ – wheaties

Respuesta

13

En realidad, se suele llamar aprendizaje incremental. La pregunta ha surgido antes y está muy bien respondida aquí: A few implementation details for a Support-Vector Machine (SVM).

En resumen, es posible pero no fácil, tendría que cambiar la biblioteca que está utilizando o implementar el algoritmo de entrenamiento usted mismo.

Encontré dos soluciones posibles, SVMHeavy y LaSVM, que admite el entrenamiento incremental. Pero no he usado ninguno y no sé nada sobre ellos.

+0

Gracias, cambié el título de mi pregunta para ser más preciso. La pregunta a la que se refiere es una buena respuesta para la mía. –

+6

Normalmente he visto que esto se llama "aprendizaje en línea". –

+0

@larsmans Buen punto. También a veces se confunde/combina con el aprendizaje activo. – Stompchicken

1

En línea e incremental aunque similares pero difieren ligeramente. En línea, generalmente se puede configurar una única pasada (época = 1) o una cantidad de épocas. Donde como, incremental significaría que ya tiene un modelo; no importa cómo esté construido, pero luego el modelo puede ser mutable con nuevos ejemplos. Además, a menudo se necesita una combinación de en línea e incremental.

Aquí es una lista de herramientas con algunas observaciones sobre la SVM en línea y/o incremental: https://stats.stackexchange.com/questions/30834/is-it-possible-to-append-training-data-to-existing-svm-models/51989#51989

Cuestiones relacionadas