Un set di addestramento scarso influisce negativamente su un SVM?


12

Sto cercando di classificare i messaggi in diverse categorie usando un SVM. Ho compilato un elenco di parole / simboli desiderabili dal set di addestramento.

Per ogni vettore, che rappresenta un messaggio, ho impostato la riga corrispondente su 1se la parola è presente:

"corpus" è: [mary, little, lamb, star, twinkle]

primo messaggio: "maria aveva un agnellino" -> [1 1 1 0 0]

secondo messaggio: "scintillio stellina" -> [0 1 0 1 1]

Penso che questa sia una configurazione abbastanza comune con SVM, ma la mia domanda è, con migliaia di parole nel set, cosa succede se ci sono solo 1-2 parole per messaggio che vengono effettivamente visualizzate? La dipendenza lineare della mia serie di vettori di formazione influenzerà negativamente la capacità dell'algoritmo di convergere?


1
Hai molti dati, ma pochi dati etichettati? In tal caso, potresti voler esaminare l'apprendimento semi supervisionato. L'uso di alcuni dei tuoi dati senza etichetta dovrebbe aumentare la precisione e ridurre il rischio di overfitting.
neurone,

@neuron Avevo pensato di farlo. Qual è un esempio di architettura semi-supervisionata?
jonsca,

1
Ho usato solo metodi "hackish" di semi supervisione (alias modello di treno su trainingset, uso del modello per prevedere i dati, estrarre tutti i dati con una probabilità di previsione> 0,5 e unirli con trainingset e creare moel su nuovi trainingset). Ma ho visto flexmix menzionato alcuni posti (vedi cran.r-project.org/web/packages/flexmix )
neurone,

@neuron Va bene, perché gli articoli che ho visto (anche se con una rapida ricerca simile a Wikipedia) non erano molto specifici sulle architetture. Io controllare flexmix- anche se, ho avuto "Learn R" sul mio calendario per un paio d'anni a questa parte!
jonsca,

Fallo, R è INCREDIBILE, le biblioteche che diventano disponibili a te sono solo da capogiro. Cose come caret, sqldf / rmysql, foreach (parallel for), ggplot2 e googlevis sono strumenti incredibilmente utili. All'inizio non ero un fan della lingua, ma è cresciuto su di me e adoro usarlo ora.
neurone,

Risposte:


9

La scarsità e la dipendenza lineare sono due cose diverse. La dipendenza lineare implica che alcuni dei vettori di funzionalità sono semplici multipli di altri vettori di funzionalità (o lo stesso applicato agli esempi). Nell'impostazione che hai descritto, penso che la dipendenza lineare sia improbabile (implica che due termini hanno la stessa frequenza (o multipli) su tutti i documenti). Il semplice fatto di avere funzioni sparse non presenta alcun problema per SVM. Un modo per vedere questo è che potresti fare una rotazione casuale degli assi coordinati, che lascerebbe invariato il problema e darebbe la stessa soluzione, ma renderebbe i dati completamente non sparsi (questo è in parte come funzionano le proiezioni casuali ).

Inoltre sembra che tu stia parlando dell'SVM in primordiale . Nota che se usi il kernel SVM, solo perché hai un set di dati sparse non significa che la matrice del kernel sarà sparsa. Tuttavia, può essere di basso livello. In tal caso, puoi effettivamente trarre vantaggio da questo fatto per un addestramento più efficiente (vedi ad esempio Allenamento svm efficiente usando rappresentazioni del kernel di basso rango ).


1
È vero, ero un po 'veloce e sciolto con la mia terminologia. Ha senso.
jonsca,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.