优化R中的多元函数

时间:2012-07-18 16:27:09

标签: r optimization

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

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优化多变量函数而不创建其他函数?

1 个答案:

答案 0 :(得分:3)

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

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

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