In Bezug auf "Working SVM out" - was SVM "härter" arbeiten lässt, ist ein komplexeres Modell, das nicht einfach getrennt werden kann, höhere Dimensionalität und einen größeren, dichteren Datensatz.
SVM Leistung stark verringert mit:
- Datensatz Größe zunimmt (Anzahl der Datenpunkte)
- Sparsity abnimmt (weniger Nullen)
- Dimensionalität zunimmt (Anzahl von Attributen)
- Non- lineare Kernel werden verwendet (und Kernel-Parameter können die Kernel-Evaluierung komplexer machen)
Wechselnde Parameter
Gibt es Parameter können Sie SVM länger dauern, um ändern. Natürlich wirken sich die Parameter auf die Qualität der Lösung aus, die Sie erhalten, und es macht keinen Sinn, sie zu verwenden.
Mit C-SVM führt die Variation von C zu unterschiedlichen Laufzeiten. (Der ähnliche Parameter in nu-SVM ist nu.) Wenn die Datenmenge einigermaßen separierbar ist, führt eine Verkleinerung von C zu einer längeren Laufzeit, da die SVM mehr Trainingspunkte zu Supportvektoren werden lässt. Wenn das Dataset nicht sehr trennbar ist, führt die Vergrößerung von C zu längeren Laufzeiten, da Sie SVM im Wesentlichen mitteilen, dass Sie eine Lösung mit engen Toleranzen wünschen, die eng an die Daten angepasst ist und bei Daten nicht so einfach zu berechnen ist trennen.
Oft finden Sie bei einer Parametersuche, dass es Parameter gibt, die die Rechenzeit erhöhen, ohne dass die Genauigkeit merklich zunimmt.
Die anderen Parameter sind Kernel-Parameter und wenn Sie sie variieren, um die Komplexität der Berechnung des Kernels zu erhöhen, dann wird natürlich die SVM-Laufzeit erhöhen. Der lineare Kernel ist einfach und wird am schnellsten sein; Nichtlineare Kernel werden natürlich länger brauchen. Einige Parameter erhöhen zwar nicht die Berechnungskomplexität des Kernels, erzwingen jedoch ein viel komplexeres Modell, wodurch SVM möglicherweise viel länger benötigt wird, um die optimale Lösung zu finden.
Datensätze zu verwenden:
Die UCI Machine Learning Repository eine große Quelle der Datensätze ist.
Die MNIST handwriting recognition dataset ist eine gute zu verwenden - Sie können nach dem Zufallsprinzip Teilmengen der Daten auswählen, um immer größere Datenmengen zu erstellen. Beachten Sie, dass die Daten im Link alle Ziffern enthalten, SVM ist natürlich binär, Sie müssten also die Daten auf nur zwei Ziffern reduzieren oder eine Art SVM mit mehreren Klassen durchführen.
Sie können auch einfach Datensätze erzeugen. Um ein lineares Dataset zu generieren, wählen Sie nach dem Zufallsprinzip einen normalen Vektor für eine Hyperebene aus, generieren dann einen Datenpunkt und bestimmen, auf welcher Seite der Hyperebene er steht, um sie zu beschriften. Fügen Sie etwas Zufälligkeit hinzu, damit Punkte innerhalb einer bestimmten Entfernung der Hyperebene manchmal anders gekennzeichnet werden. Erhöhen Sie die Komplexität, indem Sie diese Überlappung zwischen Klassen erhöhen. Oder generieren Sie eine Anzahl von Clustern normalverteilter Punkte, die entweder als 1 oder -1 bezeichnet werden, sodass sich die Verteilungen an den Kanten überlappen. Das klassische nichtlineare Beispiel ist ein Schachbrettmuster. Erzeugen Sie Punkte und beschriften Sie sie in einem Schachbrettmuster. Um die Anzahl der Quadrate zu erhöhen, erhöhen Sie die Abmessungen und erhöhen Sie die Anzahl der Datenpunkte. Dafür müssen Sie natürlich einen nichtlinearen Kernel verwenden.
Das Duplizieren von Trainingspunkten erschwert das Problem nicht. Da die meisten SVM die gesamte Datenmenge in den Hauptspeicher aufnehmen müssen, ist es sinnvoll, dass Sie schließlich Speicherfehler erhalten. – karenu
Also, wie kann ich mit einem richtigen großen Datensatz versuchen? Kennst du ein Beispiel, das ich verwenden könnte? – Manolete
Ja, wenn Sie meine Antwort sehen, habe ich eine Reihe verfügbarer Datensätze aufgelistet. Außerdem sollten Sie Parameter-Tuning durchführen, um die besten Parameter zu finden. Sie werden feststellen, dass bei der Suche nach den Parametern, die Ihnen die größte Genauigkeit geben, einige länger trainieren werden als andere. Sehen Sie sich das Practical Guide des Autors von libsvm an: http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CFYQFjAA&url=http%3A%2F%2Fwww.csie.ntu .edu.tw% 2F ~ cjlin% 2FPapiere% 2Fguide% 2Fguide.pdf & ei = WtLhT46NO-jw0gG30pHVAw & usg = AFQjCNFol0McRktHC6gsBxKXqQMvmQUFeg – karenu