Beeinträchtigt ein geringer Trainingsumfang eine SVM?

12

Ich versuche, Nachrichten mithilfe einer SVM in verschiedene Kategorien zu klassifizieren. Ich habe eine Liste der gewünschten Wörter / Symbole aus dem Trainingsset zusammengestellt.

Für jeden Vektor, der eine Nachricht darstellt, setze ich die entsprechende Zeile auf, 1wenn das Wort vorhanden ist:

"Corpus" ist: [Mary, Little, Lamm, Star, Twinkle]

erste Nachricht: "Mary hatte ein kleines Lamm" -> [1 1 1 0 0]

zweite Meldung: "Funkelnder kleiner Stern" -> [0 1 0 1 1]

Ich denke, dies ist eine bei SVM weit verbreitete Einrichtung, aber meine Frage ist, ob bei Tausenden von Wörtern im Satz nur 1-2 Wörter pro Nachricht tatsächlich angezeigt werden. Beeinträchtigt die lineare Abhängigkeit meines Satzes von Trainingsvektoren die Konvergenzfähigkeit des Algorithmus?

jonsca
quelle
1
Haben Sie viele Daten, aber wenig beschriftete Daten? In diesem Fall möchten Sie vielleicht einen Blick auf das semi-überwachte Lernen werfen. Die Verwendung einiger Ihrer nicht gekennzeichneten Daten sollte sowohl Ihre Genauigkeit erhöhen als auch das Risiko einer Überanpassung verringern.
Neuron
@neuron Ich hatte darüber nachgedacht. Was ist ein Beispiel für eine halbüberwachte Architektur?
Jonsca
1
Ich habe nur "hackische" Methoden mit teilweiser Überwachung verwendet (alias Zugmodell auf Trainingssatz, Modell zur Vorhersage von Daten verwenden, alle Daten mit einer Vorhersagewahrscheinlichkeit von> 0,5 abrufen und mit Trainingssatz zusammenführen und Moel auf neuem Trainingssatz erstellen). Aber ich habe gesehen, dass flexmix ein paar Stellen erwähnt hat (siehe cran.r-project.org/web/packages/flexmix )
Neuron
@neuron Okay, gut, denn die Artikel, die ich gesehen habe (wenn auch mit einer schnellen wikipedia-ähnlichen Suche), waren nicht sehr spezifisch für Architekturen. Ich werde nachsehen flexmix- aber ich habe jetzt seit ein paar Jahren "Learn R" in meinem Kalender!
jonsca
Tun Sie es, R ist ERSTAUNLICH, die Bibliotheken, die Ihnen zur Verfügung stehen, sind einfach umwerfend. Dinge wie caret, sqldf / rmysql, foreach (parallel for), ggplot2 und googlevis sind einfach unglaublich hilfreiche Werkzeuge. Anfangs war ich kein Fan der Sprache, aber sie ist mir gewachsen und ich liebe es, sie jetzt zu benutzen.
Neuron

Antworten:

9

Sparsamkeit und lineare Abhängigkeit sind zwei verschiedene Dinge. Die lineare Abhängigkeit impliziert, dass einige der Merkmalsvektoren einfache Vielfache anderer Merkmalsvektoren sind (oder dasselbe gilt für Beispiele). In der von Ihnen beschriebenen Konfiguration halte ich eine lineare Abhängigkeit für unwahrscheinlich (dies impliziert, dass zwei Begriffe in allen Dokumenten dieselbe Häufigkeit (oder ein Vielfaches davon) aufweisen). Nur spärliche Funktionen zu haben, ist für die SVM kein Problem. Eine Möglichkeit, dies zu erkennen, besteht darin, dass Sie eine zufällige Drehung der Koordinatenachsen durchführen können, wodurch das Problem unverändert bleibt und die gleiche Lösung erhalten wird, die Daten jedoch vollständig uneinheitlich werden (dies ist zum Teil so, wie zufällige Projektionen funktionieren) ).

Es scheint auch, dass Sie über die SVM im Urzustand sprechen . Beachten Sie, dass die Kernelmatrix bei Verwendung der Kernel-SVM nur dann nicht dünn ist, wenn Sie über ein dünn besetztes Dataset verfügen. Es kann jedoch ein niedriger Rang sein. In diesem Fall können Sie diese Tatsache tatsächlich für ein effizienteres Training nutzen (siehe zum Beispiel Effizientes SVM-Training unter Verwendung von Kernel-Repräsentationen mit niedrigem Rang ).

tdc
quelle
1
Es stimmt, ich war ein bisschen schnell und locker mit meiner Terminologie. Macht Sinn.
Jonsca