3

我有一个多元函数,我想优化一个参数:

cost <- function(theta, X, y) {
  m <- nrow(X)
  X <- as.matrix(X)
  J <- sum(-y * log(sigmoid(X %*% theta)) - (1-y) * log(1 - sigmoid(X %*% theta)))/m;
  return(J)
}

为了优化它,我使用了 optim 函数。首先,我创建一个包装器,然后使用 optim 函数优化包装器功能:

# X and y initialized before
initial_theta <- rep(0,ncol(X))
wrapper <- function(theta) cost(theta, X=X, y=y)
o <- optim(initial_theta, wrapper) 

如何在不创建额外函数的情况下使用 optim 优化多元函数?

4

1 回答 1

3

optim接受一个...参数,该参数将任何附加输入传递给感兴趣的函数。因此,只要您要优化的参数是感兴趣函数的第一个参数,您就不需要创建新函数。

optim(initial_theta, cost, X = X, y = y)

应该提供与创建额外功能相同的功能。

于 2012-07-18T16:42:08.417 回答