Was ist der Unterschied zwischen Support Vector Machines und Linear Discriminant Analysis?
Was ist der Unterschied zwischen Support Vector Machines und Linear Discriminant Analysis?
Antworten:
LDA: Angenommen, die Daten sind normal verteilt. Alle Gruppen sind identisch verteilt. Falls die Gruppen unterschiedliche Kovarianzmatrizen haben, wird LDA zur quadratischen Diskriminanzanalyse. LDA ist der beste verfügbare Diskriminator, wenn alle Annahmen tatsächlich erfüllt sind. QDA ist übrigens ein nichtlinearer Klassifikator.
SVM: Verallgemeinert die optimal trennende Hyperebene (OSH). Der Arbeitsschutz geht davon aus, dass alle Gruppen vollständig trennbar sind, und SVM verwendet eine "Slack-Variable", die eine gewisse Überlappung zwischen den Gruppen zulässt. SVM macht keine Annahmen über die Daten, was bedeutet, dass es eine sehr flexible Methode ist. Die Flexibilität macht es andererseits oft schwieriger, die Ergebnisse eines SVM-Klassifikators im Vergleich zu LDA zu interpretieren.
SVM-Klassifizierung ist ein Optimierungsproblem, LDA hat eine analytische Lösung. Das Optimierungsproblem für den SVM besteht aus einer dualen und einer primären Formulierung, die es dem Benutzer ermöglichen, entweder die Anzahl der Datenpunkte oder die Anzahl der Variablen zu optimieren, je nachdem, welche Methode rechnerisch am besten durchführbar ist. SVM kann auch Kernel verwenden, um den SVM-Klassifizierer von einem linearen Klassifizierer in einen nichtlinearen Klassifizierer umzuwandeln. Verwenden Sie Ihre bevorzugte Suchmaschine, um nach "SVM-Kernel-Trick" zu suchen und zu sehen, wie SVM Kernel verwendet, um den Parameterraum zu transformieren.
LDA verwendet den gesamten Datensatz zur Schätzung von Kovarianzmatrizen und ist daher für Ausreißer etwas anfällig. SVM wird über eine Teilmenge der Daten optimiert. Hierbei handelt es sich um die Datenpunkte, die auf dem Trennrand liegen. Die für die Optimierung verwendeten Datenpunkte werden als Unterstützungsvektoren bezeichnet, da sie bestimmen, wie die SVM zwischen Gruppen unterscheidet, und somit die Klassifizierung unterstützen.
Meines Wissens unterscheidet SVM nicht wirklich gut zwischen mehr als zwei Klassen. Eine robuste Alternative für Ausreißer ist die Verwendung der logistischen Klassifizierung. LDA handhabt mehrere Klassen gut, solange die Annahmen erfüllt sind. Ich glaube jedoch (Warnung: fürchterlich unbegründete Behauptung), dass mehrere alte Benchmarks festgestellt haben, dass LDA unter vielen Umständen normalerweise recht gut funktioniert und LDA / QDA in der ersten Analyse häufig zu Methoden geworden sind.
Kurz gesagt: LDA und SVM haben sehr wenig gemeinsam. Zum Glück sind beide sehr nützlich.
SVM konzentriert sich nur auf die Punkte, die schwer zu klassifizieren sind, LDA konzentriert sich auf alle Datenpunkte. Solche schwierigen Punkte liegen nahe der Entscheidungsgrenze und werden als Unterstützungsvektoren bezeichnet . Die Entscheidungsgrenze kann linear sein, aber auch zB ein RBF-Kernel oder ein Polynomkernel. Wobei LDA eine lineare Transformation ist, um die Trennbarkeit zu maximieren.
LDA geht davon aus, dass die Datenpunkte die gleiche Kovarianz aufweisen und die Wahrscheinlichkeitsdichte als normalverteilt angenommen wird. SVM hat keine solche Annahme.
LDA ist generativ, SVM ist diskriminierend.
Unterstützungsvektormaschinen finden ein lineares Trennzeichen (lineare Kombination, Hyperebene), das die Klassen mit dem geringsten Fehler trennt, und wählen das Trennzeichen mit dem maximalen Rand (die Breite, mit der die Grenze vor dem Auftreffen auf einen Datenpunkt vergrößert werden könnte).
ZB welches lineare Trennzeichen trennt die Klassen am besten?
Der mit der maximalen Marge:
Lineare Diskriminanzanalyse die mittleren Vektoren jeder Klasse und dann die Projektionsrichtung (Rotation), die die Trennung der Mittelwerte maximiert:
Es berücksichtigt auch die Varianz innerhalb der Klasse, um eine Projektion zu finden, die die Überlappung von Verteilungen (Kovarianz) minimiert und gleichzeitig die Trennung der Mittelwerte maximiert: