什么是Matlab的fminunc函数的R等价物?

Geo*_*tas 11 math matlab r mathematical-optimization

为了计算最优θ,例如在逻辑回归中,我必须创建一个costFunction(要最小化的函数),然后将其传递给fminunc以获得最佳θ.此外,如果可以计算costFunction的梯度,我将'GradObj'选项设置为'on'使用

options = optimset('GradObj','on');
Run Code Online (Sandbox Code Playgroud)

并对costFunction进行编码,以便它作为第二个输出参数返回X的梯度值g.然后我给出

[theta, cost] = fminunc(@(t)(costFunction(t, X, y)), initial_theta, options);
Run Code Online (Sandbox Code Playgroud)

其中X是数据矩阵,y是响应.如何在R中实现上述功能?

Ram*_*ath 10

看看这个optim功能.它可以使用无约束最小化method = 'L-BFGS-B',您也可以指定分析函数来计算梯度

编辑.正如本已正确指出的那样,fminunc无约束优化,也可以使用optim函数选择Nelder-Mead或实现BFGS.此外,我还从文档中fminunc注意到它使用trust区域方法进行大规模优化.有一个R包trust我相信做同样的事情.我建议你看看R 的optimization 任务视图.

  • 我很困惑,我认为OP要求*无约束*优化,你正在描述*约束*优化......?(并不是那么重要,在任何情况下,'optim`都是正确答案.) (2认同)