3

1つのパラメーターで最適化する多変量関数があります。

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 に答える