2016-08-17 2 views
0

svm-train Ausführbare hat Parameter e, die einige epsilon festlegen können. Die Beschreibung sagt nurWas ist `eps` in libsvm?

eingestellten Toleranz von Abbruchkriterium (Standard 0,001)

ich es genug informativ nicht und kann nicht die entsprechende Erklärung im Internet finden. Vielleicht ist es ein bekannter generischer SVM-Parameter, aber ich kenne die generische SVM nicht genug.

Ich meine die Epsilon in der Klassifikation verwendet, aber nicht die Epsilon in der Regression verwendet ("in Verlustfunktion von Epsilon-SVR") und libsvm mit Option -p angegeben.

+0

Hilft [dies] (http://www.svms.org/parameters/) (ja, es ist ein bekannter generischer Parameter und wenn Sie die Ressourcen verwenden, können Sie es in die Kreuzvalidierungsprozedur einbeziehen einen guten Wert erhalten, aber C ist viel wichtiger)? – sascha

+0

@sascha, diese Seite scheint über ein anderes 'Epsilon' zu sprechen -" das Epsilon in der Verlustfunktion von Epsilon-SVR ", spezifiziert zu libsvm mit der Option' -p' und standardmäßig auf '0.1'. –

Antwort

1

Die Lösung für die SVM wird durch numerische Optimierung gelöst. Der Löser ist iterativ, und man könnte die Iterationen möglicherweise für immer wiederholen, bis Sie einen Fehler von genau Null erreichen - die genaue Lösung für das Problem finden (dies würde aufgrund von Gleitkomma-Rundungsfehlern niemals wirklich passieren). epsilon, in diesem Fall ist die Toleranz dafür, wie nahe Null die Lösung sein muss, bevor wir aufhören, Iterationen des Solvers auszuführen. 0,001 ist im Allgemeinen ein guter Wert. Kleinere Werte benötigen mehr Zeit zum Trainieren (erfordern mehr Iterationen), führen aber wahrscheinlich nicht zu einer niedrigeren Fehlerrate, da die Lösung nahe genug war, um damit zu beginnen. 0,01 ist ebenfalls üblich, dies benötigt weniger Zeit zum Trainieren (weniger Iterationen), hat aber manchmal eine höhere Fehlerrate bei Testdaten als eine genauere Lösung.