Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么是Matlab的R等价物';什么是fminunc函数?_R_Matlab_Math_Mathematical Optimization - Fatal编程技术网

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

什么是Matlab的R等价物';什么是fminunc函数?,r,matlab,math,mathematical-optimization,R,Matlab,Math,Mathematical Optimization,为了计算最佳θ,例如在逻辑回归中,我必须创建一个costFunction(要最小化的函数),然后将其传递给fminunc以获得最佳θ。 另外,如果可以计算costFunction的梯度,我使用 options = optimset('GradObj','on'); 并对costFunction进行编码,使其作为第二个输出参数返回X的梯度值g。 然后我给 [theta, cost] = fminunc(@(t)(costFunction(t, X, y)), initial_theta, opt

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

options = optimset('GradObj','on');
并对costFunction进行编码,使其作为第二个输出参数返回X的梯度值g。 然后我给

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

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

请查看
optim
函数。它可以使用
方法='L-BFGS-B'
进行无约束最小化,您还可以指定一个分析函数来计算梯度


编辑。正如Ben正确指出的,
fminunc
进行无约束优化,这也可以通过使用
optim
函数选择
Nelder-Mead
BFGS
实现。此外,我还从
fminunc
的文档中注意到,它使用
trust
区域方法进行大规模优化。有一个R包
trust
,我相信它也能做同样的事情。我建议您看看R的
优化

在R中,您可以使用R中的函数
nlminb
进行约束优化

nlminb(开始,目标,梯度=NULL,黑森=NULL,…,比例=1,控制=list(),下=-Inf,上=Inf)


开始是一个包含所有初始参数值的向量。目标是要最小化的成本函数或任何其他函数

我很困惑,我以为OP要求的是无约束优化,而你描述的是约束优化?(这并不重要,
optim
在任何情况下都是正确的答案。)你是对的!我不知道为什么我认为他在要求无约束优化。我添加了一个指向同一点的编辑。