【问题标题】:Optimizing multivariate function in R在 R 中优化多元函数
【发布时间】:2012-07-19 00:42:08
【问题描述】:

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

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 优化多元函数?

【问题讨论】:

  • 你根本不需要包装器——optim(initial_theta, cost, X=X, y=y) 应该可以工作
  • @BenBolker - 谢谢,它有效。如果您希望您的答案被接受,请将其作为答案发布。
  • 继续接受@Dason's,它说了同样的话。

标签: r optimization


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-26
    • 1970-01-01
    • 2013-07-26
    相关资源
    最近更新 更多