什么是Matlab的R等价物';什么是fminunc函数?
为了计算最佳θ,例如在逻辑回归中,我必须创建一个costFunction(要最小化的函数),然后将其传递给fminunc以获得最佳θ。 另外,如果可以计算costFunction的梯度,我使用什么是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
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
在任何情况下都是正确的答案。)你是对的!我不知道为什么我认为他在要求无约束优化。我添加了一个指向同一点的编辑。