Чи є спосіб максимально / мінімізувати власну функцію в R?


18

Я намагаюся мінімізувати власну функцію. Він повинен прийняти п'ять параметрів і набір даних і робити всілякі обчислення, виробляючи єдине число як вихід. Я хочу знайти комбінацію з п'яти вхідних параметрів, яка дає найменший вихід моєї функції.

Відповіді:


23

Я написав пост, у якому перелічив декілька навчальних посібниківoptim .

Ось цитата відповідного розділу:

  • "Поєднання функції R optimта створеної на замовлення цільової функції, наприклад, мінусові функції вірогідності, є потужним інструментом для оцінки параметрів користувацьких моделей.

  • 1
    Останнім часом я граю з DEoptim як хороший оптимізатор "не потрібні стартові точки".
    Майк Лоуренс

    1
    Недавнє розміщення Джон Майлс Уайт на Optim команди в R також може бути інтерес .
    Енді Ш

    @Mike погодився; DEoptim дає більш надійну альтернативу (DE = диференціальна еволюція)
    Abe

    12

    Окрім відповіді Джеромі Англіма, у мене є ще кілька посилань.

    Поруч optimє ще одна функція в базовому R , що дозволяє за те , що ви хочете: nlminb. Перевірте ?nlminbі ?optimприклади використання.

    Є купа пакетів, які можуть робити оптимізацію. Найцікавішим я вважав пакунки optimx та, зовсім новий, пакет neldermead для різних версій симплексного алгоритму.

    Крім того, ви можете ознайомитись із завданням CRAN щодо оптимізації для більшої кількості пакетів

    Зверніть увагу, що всі мої рекомендації передбачають, що ви маєте детерміновану функцію (тобто відсутні випадкові шуми). Для функцій, які не є строго детермінованими (або занадто великими), вам потрібно буде використовувати такі алгоритми, як імітаційний відпал або генетичні алгоритми. Але перегляд завдань CRAN повинен мати те, що вам потрібно.


    1

    Чи є ваша функція постійною та диференційованою? Можливо, ви зможете використовувати оптимальну функцію як із похідними, що надаються користувачем, так і з числовим наближенням.

    Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
    Licensed under cc by-sa 3.0 with attribution required.