2010-10-19 8 views
14

Sto utilizzando un classificatore SVM multidimensionale (SVM.NET, un wrapper per libSVM) per classificare un insieme di funzionalità.Un SVM può imparare in modo incrementale?

Dato un modello SVM, è possibile incorporare nuovi dati di allenamento senza dover ricalcolare su tutti i dati precedenti? Immagino che un altro modo di metterlo sarebbe: un SVM è mutabile?

+0

ho iniziato a passare attraverso il libro del Vescovo per aiutare a rispondere questo, ma credo che si potrebbe ottenere una risposta più penetranti sopra a http: //mathoverflow.net/ – wheaties

risposta

13

In realtà, di solito viene chiamato apprendimento incrementale. La domanda è arrivata prima ed è ben fornita qui: A few implementation details for a Support-Vector Machine (SVM).

In breve, è possibile ma non facile, si dovrebbe modificare la libreria che si sta utilizzando o implementare l'algoritmo di allenamento da soli.

Ho trovato due soluzioni possibili, SVMHeavy e LaSVM, che supporta l'addestramento incrementale. Ma non li ho nemmeno usati e non ne so nulla.

+0

Grazie, ho cambiato il titolo della domanda per essere più preciso. La domanda a cui fai riferimento è una buona risposta alla mia. –

+6

Di solito ho visto questo essere chiamato "apprendimento online". –

+0

@larsmans Buon punto. A volte è anche confuso/confuso con l'apprendimento attivo. – Stompchicken

1

In linea e incrementale sebbene simile ma leggermente diverso. In linea, è generalmente possibile configurare un singolo passaggio (epoca = 1) o un numero di epoche. Dove as, incremental significherebbe che hai già un modello; non importa come è costruito, ma il modello può essere mutabile con nuovi esempi. Inoltre, una combinazione di online e incrementale è spesso ciò che è richiesto.

Ecco un elenco degli strumenti con alcune osservazioni sulla SVM on-line e/o incrementale: https://stats.stackexchange.com/questions/30834/is-it-possible-to-append-training-data-to-existing-svm-models/51989#51989