Matlab's fminunc функциясының R эквиваленті дегеніміз не?

Оңтайлы тэта есептеу үшін, мысалы: логистикалық регрессияда маған оңтайлы тэта алу үшін fminunc-ге жіберілген costFunction (функцияны азайту) функциясын жасау керек. Сондай-ақ, егер шығыс функциясының градиентін есептеуге болады, мен 'GradObj' параметрін 'on' қолдануға орнаттым

options = optimset('GradObj','on');

және costFunction функциясын кодтайды, осылайша екінші нәтиже аргументі ретінде X градиентінің мәнін қайтарады. Сонда мен беремін

[theta, cost] = fminunc(@(t)(costFunction(t, X, y)), initial_theta, options);

онда X - деректер матрицасы және y жауап. Жоғарыдағы R-ны қалай жүзеге асыруға болады?

11

2 жауаптар

optim функциясын қараңыз. Ол method = 'L-BFGS-B' арқылы шектеусіз азайтуға болады және сіз градиентті есептеу үшін аналитикалық функцияны көрсете аласыз

EDIT. fminunc fading немесе опциясын таңдау арқылы optim функциясы арқылы қол жеткізуге болатын, BFGS . Сонымен қатар, fminunc құжаттамасынан trust аймақтық әдістерін пайдалана отырып кең ауқымды оңтайландыруды жүзеге асырғанын байқадым. R коды бар trust бар, солай деп ойлаймын. optimization R көрінісінің көрінісін қарап шығуды ұсынамын .

9
қосылды
Мен шатастырмадым, ОС-ң шектеусіз оңтайландыруды сұрады деп ойладым және сіз шектелген оңтайландыруды сипаттайсыз ...? (Бұл өте маңызды емес, optim - кез келген жағдайда дұрыс жауап болып табылады.)
қосылды автор Ben Bolker, көзі
сіздікі жөн! Мен қандай да бір себеппен білмеймін, ол оңтайландыруды талап етпеген деп ойладым. Мен редакторды бірдей көрсетіп қостық.
қосылды автор Ramnath, көзі

R-де сіз R ішіндегі шектеулі оңтайландыру үшін nlminb функциясын қолдана аласыз!

nlminb (бастау, мақсат, градиент = NULL, hessian = NULL, ..., scale = 1, control = list (), төменгі = -Inf, upper = Inf)

Бастау - параметрлердің барлық бастапқы мәндерін қамтитын вектор. мақсаты - шығын функциясы немесе кез келген басқа функция, ол сіз азайтқыңыз келеді.

1
қосылды