Czy istnieje sposób na maksymalizację / minimalizację niestandardowej funkcji w języku R?

18

Próbuję zminimalizować funkcję niestandardową. Powinien zaakceptować pięć parametrów i zestaw danych oraz wykonać wszelkiego rodzaju obliczenia, tworząc jedną liczbę jako wynik. Chcę znaleźć kombinację pięciu parametrów wejściowych, która daje najmniejszą wydajność mojej funkcji.

użytkownik333
źródło

Odpowiedzi:

23

Napisałem post zawierający kilka samouczkówoptim .

Oto cytat odpowiedniej sekcji:

  • „Połączenie funkcji R optimi utworzonej na zamówienie funkcji celu, takiej jak funkcja prawdopodobieństwa logarytmu minus, stanowi potężne narzędzie do szacowania parametrów modeli niestandardowych.
  • Jeromy Anglim
    źródło
    1
    Ostatnio grałem z DEoptim jako miły optymalizator „bez punktów początkowych”.
    Mike Lawrence
    1
    Niedawny wpis Jana Myles bieli na Optim polecenia w R mogą być również interesujące .
    Andy W
    @ Mike zgodził się; DEoptim daje solidniejszą alternatywę (DE = Differential Evolution)
    Abe
    12

    Oprócz odpowiedzi Jeromy Anglim mam jeszcze kilka linków.

    Obok optimjest inna funkcja w podstawowej R, który pozwala na to, co chcesz: nlminb. Sprawdź ?nlminbi ?optimprzykłady użycia.

    Istnieje wiele pakietów, które mogą optymalizować. Najbardziej interesujące okazały się pakiety optimx i całkiem nowy pakiet neldermead dla różnych wersji algorytmu simplex.

    Ponadto możesz zajrzeć do widoku zadań CRAN na temat optymalizacji, aby uzyskać więcej pakietów

    Pamiętaj, że wszystkie moje zalecenia zakładają, że masz funkcję deterministyczną (tj. Brak szumu losowego). W przypadku funkcji, które nie są ściśle deterministyczne (lub zbyt duże), należy użyć algorytmów, takich jak symulowane wyżarzanie lub algorytmy genetyczne. Ale widok zadań CRAN powinien mieć to, czego potrzebujesz.

    Henrik
    źródło
    1

    Czy twoja funkcja jest ciągła i zróżnicowana? Możesz być w stanie użyć optymalnego, albo z pochodnymi dostarczonymi przez użytkownika, albo z przybliżonymi numerycznie.

    grg s
    źródło