2016-05-06 4 views
0

Ich möchte die Funktion fminsearch von Matlab verwenden, um mit einem gewichteten RBF-Kernel-Klassifikator nach den besten Hyperparametern meiner SVM zu suchen. fminsearch verwendet die Nelder-Mead-Simplex-Methode.Nelder-Mead-Optimierung mit Gleichheitsbedingungen

Lassen Sie uns sagen, ich habe folgende Hyper: C, Gamma, w .... w n wobei w i die Gewichte des Kernels sind.

Zusätzlich habe ich die Einschränkung, dass Summe (w i) = 1, d. H. Alle Gewichte müssen eins zusammenfassen.

Gibt es eine Möglichkeit, Nelder-Mead mit dieser Gleichheitsbedingung zu verwenden? Ich weiß, dass es die fminsearchbnd Methode für Matlab gibt, aber ich denke, dass es nur Grenzungleichheitseinschränkungen behandeln kann.

Edit: Ich bin ein SVM-Klassifikator verwendet und die Gewichte werden in einem gewichteten RBF-Kernel (ein Gewicht für jede Funktion) verwendet. Die zu schätzenden Parameter sind somit C, Gamma und die Gewichte. Die Kostenfunktion ist die Genauigkeit.

Antwort

1

Können Sie einen der w(i) ersetzen? Das bedeutet, z.B. w1 von 1-w2-w3-... (und die Beschränkung fallen lassen). Ansonsten sehen Sie sich fmincon an, die explizite Einschränkungen erlaubt. Zusätzlich benötigen Sie möglicherweise 0 <= w(i) <= 1.

+0

Ja, ich brauche 0 <= w (i) <= 1, danke für den Hinweis. Und ja, ich könnte w1 = 1-w2-w3 -... tun, aber warum kann ich dann die Constraint-Summe (w (i)) = 1 fallen lassen? Zum Beispiel w2 = 0.8 und w3 = 0.5 und dann w1 = 1 - w2 - w3 = 1 - 0.8 - 0.5 <0 – machinery

+0

In Bezug auf fmincon: Wissen Sie, welcher Algorithmus zum Lösen verwendet wird? Ich nehme an, nicht Nelder-Mead. Geht fmincon von linearer und glatter Kostenfunktion aus? Dies ist möglicherweise nicht der Fall, da meine Kostenfunktion das ausgeglichene Genauigkeitsmaß ist (in einer SVM-Klassifizierungseinstellung). – machinery

+0

Wenn Sie die w (i) begrenzen, können Sie sie nicht ersetzen (aber die Grenzen wurden im ursprünglichen Post nicht erwähnt). 'fmincon' hat mehrere Algorithmen zur Auswahl. Die Dokumentation ist eigentlich sehr gut. Unruhige Probleme können immer Probleme verursachen (aber nicht immer). Wenn möglich, kann man versuchen, etwas Glattes zu formulieren. –