![](/img/trans.png)
[英]what is the equivalent of Matlab's typecast function in R / Python / Julia
[英]What is the R equivalent of Matlab's fminunc function?
为了计算最佳 theta,例如在逻辑回归中,我必须创建一个 costFunction(要最小化的函数),然后将其传递给 fminunc 以获得最佳 theta。 此外,如果可以计算 costFunction 的梯度,我将“GradObj”选项设置为“on”使用
options = optimset('GradObj','on');
并对 costFunction 进行编码,使其作为第二个输出参数返回 X 的梯度值 g。然后我给出
[theta, cost] = fminunc(@(t)(costFunction(t, X, y)), initial_theta, options);
其中 X 是数据矩阵, y 是响应。 如何在 R 中实现上述内容?
看看optim
函数。 它可以使用method = 'L-BFGS-B'
进行无约束最小化,您也可以指定一个分析函数来计算梯度
编辑。 正如 Ben 正确指出的那样, fminunc
无约束优化,这也可以使用optim
函数选择Nelder-Mead
或BFGS
。 此外,我还从fminunc
的文档中注意到它使用trust
域方法进行大规模优化。 我相信有一个 R 包trust
可以做同样的事情。 我建议看一下 R 的optimization
任务视图。
在R中,可以使用R中的函数nlminb
做约束优化!
nlminb(start, objective, gradient = NULL, hessian = NULL, ..., scale = 1, control = list(), lower = -Inf, upper = Inf)
开始是一个向量,包括所有参数的初始值。 目标是成本函数或您想要最小化的任何其他函数。
你试过ucminf包的ucminf
功能了吗? 如果您的问题是不受约束的问题(并且在许多情况下,您可以轻松地将受约束的问题转换为不受约束的问题),则ucminf
与 Matlab 的fmincon
非常相似。 两者在使用信任区域类型监控的意义上是相似的。 与fmincon
(依赖于内点算法)不同, ucminf
基于拟牛顿类型的算法。 但是, usminf
为您提供了与fmincon
相同类型的控件。 根据我的经验, ucminf
非常擅长复制fmincon
的输出, ucminf
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.