Argumente mit Parametern in package cmaes

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

Antworten
smnsstah
Beiträge: 2
Registriert: Mi Dez 04, 2019 6:12 pm

Argumente mit Parametern in package cmaes

Beitrag von smnsstah » Mi Dez 04, 2019 6:25 pm

Hallo R-Cummunity,

heute wollte ich das CRAN-Package cmaes, ganauer gesagt die Funktion, cma_es, zur Anwendung des CMAES-Optimierungsverfahrens benutzen, kenne mich aber nicht allzu sehr mit R aus und hatte dabei einige Schwierigkeiten.

Die zu verwendende Funktion sieht so aus, wobei control hier irrelevant ist:

cma_es(par, fn, ..., lower, upper, control=list())

Die entsprechende Dukumentation steht in https://cran.r-project.org/web/packages/cmaes/cmaes.pdf

Mit dieser Funktion würde ich gerne die zweidimensionale Funktion f(x,y) = x^2-cos(5*y^3)+y^2 als fn, mit den Startparametern (0, 0) als par und den Grenzen {-10,10} als lower und upper auswerten, habe es aber nicht geschafft, die Parameter und Funktion richtig zu implementieren, wobei es für eindimensionale Funktionen noch geklappt hat.

Zuletzt habe ich es mit
cma_es(par = 0, fn = f1(c(par, par)), lower = -10, upper = 10, control = list(maxit = 100, mu = 2, lambda =2))
versucht, dies hat aber offensichtlich nicht geklappt, ich habe jetzt stundenlang verschiedene Varianten probiert und die Dokumentation untersucht, aber keine Lösung gefunden, deshalb hoffe ich dass ihr mir helfen könnt in der Hoffnung, dass ich etwas simples übersehen habe, auch wenn es um ein etwas exotischeres Package geht.

Mit freundlichen Grüßen,
Niklas

Athomas
Beiträge: 290
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Argumente mit Parametern in package cmaes

Beitrag von Athomas » Mi Dez 04, 2019 7:37 pm

Ohne das Ergebnis geprüft zu haben, das läuft und wirft etwas aus:

Code: Alles auswählen

library(cmaes)
f <- function(vektor)  vektor[1]^2-cos(5*vektor[2]^3)+vektor[2]^2
cma_es(par = c(0,0), f, lower = c(-10,-10), upper = c(10,10), control = list(maxit = 10000, mu = 2, lambda =2))
Wenn ich nicht selbst mal mit einer Optimierungsfunktion in R gehadert hätte, würde ich jetzt furchtbar ablästern - von wegen erst mal Beschreibung lesen und so :lol: ...

smnsstah
Beiträge: 2
Registriert: Mi Dez 04, 2019 6:12 pm

Re: Argumente mit Parametern in package cmaes

Beitrag von smnsstah » Mi Dez 04, 2019 9:31 pm

Danke, dein Lösung funktioniert.
Habe auch mit etwas ähnlichem angefangen, so dumm bin ich auch nicht, aber da wohl einen dummen Fehler gemacht und in die falsche Richtung iteriert, wie peinlich

Antworten