Was ist die Bedeutung des nu-parameter in Scikit-Learn der SVM Klasse?
Ich bin nach dem Beispiel, dargestellt in http://scikit-learn.org/stable/auto_examples/svm/plot_oneclass.html#example-svm-plot-oneclass-py, wo ein one-class-SVM verwendet wird, für die Anomalie-Erkennung.
Nun, dies kann eine notation eindeutig zu scikit-learn, aber ich konnte nicht finden eine Erklärung, wie der parameter nu gegeben, um die OneClassSVM Konstruktor.
In http://scikit-learn.org/stable/modules/svm.html#nusvc, es wird angegeben, dass der parameter nu ist ein reparametrization der parameter C (das ist die Regularisierung parameter, die ich bin vertraut mit) - aber nicht, wie Sie durchführen, dass die Neuberechnung der Parameter.
Sowohl eine Formel und eine intuition wird sehr geschätzt.
Dank!
InformationsquelleAutor Guy Adini | 2012-06-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem mit C und die Einführung von nu
Das problem mit dem parameter C:
Es ist daher schwer richtig zu wählen und man muss zu greifen, um cross-validation-oder direkte Experimente zu finden, die einen geeigneten Wert.
Antwort Schölkopf et al. neu SVM eine neue Regularisierung parameter nu.
Dieser parameter ist:
Interpretation von nu
Den parameter nu ist eine Obere Schranke für den Anteil der margin-Fehler und eine untere Schranke der Anteil der support-Vektoren, bezogen auf die gesamte Anzahl von trainingsbeispielen. Zum Beispiel, wenn Sie ihn 0,05 sind Sie garantiert auf höchstens 5% Ihres Trainings Beispiele falsch klassifiziert (auf Kosten einer kleinen Marge, obwohl) und mindestens 5% Ihres Trainings-Beispiele, die als support-Vektoren.
Beziehung zwischen C und nu
Die Beziehung zwischen C und nu ist geregelt durch die folgende Formel:
nu = A+B/C
A und B sind Konstanten, die sind leider nicht so leicht zu berechnen.
Abschluss
Das mitnehmen Botschaft ist, dass C-und nu-SVM gleichwertig sind hinsichtlich Ihrer Klassifikation macht. Die Regulation im Sinne der nu ist einfacher zu interpretieren ist im Vergleich zu C, aber die nu-SVM ist in der Regel schwieriger zu optimieren und die Laufzeit nicht so gut skalieren wie die C-Variante mit der Anzahl der input-Proben.
Weitere Informationen (einschließlich Formeln für A und B) können hier gefunden werden: Chang CC, Lin CJ - "Training nu-support Vektor Klassifikatoren: Theorie und algorithmen"
Lieber @Bernhard Kausler, können Sie bitte einen Blick eine Frage, die ich verfasst: stackoverflow.com/questions/24540919/...
ein Buch über den Sinn des Nu?
Konnte Sie erklären Sie mir, mit einigen Grafiken
InformationsquelleAutor Bernhard Kausler
nu in der support-Vektoren ist eine hyper-parameter.
In der c-SVM wenn wir wollen, dass die Abfrage eines Punktes xq dann
∑αi.yi.xiT.xq+b für i=1 bis n
, Wie wir wissen, αi für suport Vektoren größer als null ist und für die nicht-Unterstützung vecotrs αi=0.
so nur die support-Vektoren ist die Materie für calcuating f(xq), Aber in regulären C-SVM wir haben keine Kontrolle über die keine.der support-Vektoren so, hier kommt der nu-SVM
nu :
untere Schranke für keine.der support-Vektoren
nu immer liegt zwischen 0<= nu <= 1.
können sagen nu=0,1 und n=10,000
1.wir wollen maximal 10% Fehler => 1000-Fehler-Punkte
2.bekommen wir support-Vektoren >= 1% =>wir bekommen mehr als 1000 support-Vektoren.
InformationsquelleAutor Ravi Gurnatham