使用optim优化R中的多输出函数,最好使用梯度

使用optim优化R中的多输出函数,最好使用梯度,r,optimization,R,Optimization,我最近从matlab切换到R,我想运行一个优化场景 在matlab中,我能够: options = optimset('GradObj', 'on', 'MaxIter', 400); [theta, cost] = fminunc(@(t)(costFunction(t, X, y)), initial_theta, options); 这里是costFunctionReg的等价物(这里我称之为logisticRegressionCost) logisticRegressionCost我认为

我最近从matlab切换到R,我想运行一个优化场景

在matlab中,我能够:

options = optimset('GradObj', 'on', 'MaxIter', 400);
[theta, cost] = fminunc(@(t)(costFunction(t, X, y)), initial_theta, options);
这里是costFunctionReg的等价物(这里我称之为logisticRegressionCost)


logisticRegressionCost我认为您不能这样做,因为
optim
的文档说明
fn
应该返回一个标量结果

也许您可以编写一个助手函数来进行优化。比如:

logisticRegressionCost.helper <- function(theta, X, y) {
   logisticRegressionCost(theta, X, y)$J
}

logisticRegressionCost.helper不久前我用
optim
来安装感知器。我的函数刚刚接受了
w
,并返回了错误值。
o = optim(theta <- matrix(0, dim(X)[2]), fn = logisticRegressionCost, X = X, y = y, method="Nelder-Mead")
logisticRegressionCost.helper <- function(theta, X, y) {
   logisticRegressionCost(theta, X, y)$J
}