Matlabのfminunc関数のRに相当するものは何ですか?

最適なθを計算するために、ロジスティック回帰では、最適なシータを得るためにfminuncに渡されるcostFunction(最小化される関数)を作成する必要があります。 また、costFunctionの勾配を計算できる場合は、 'GradObj'オプションを 'on'に設定します

options = optimset('GradObj','on');

Xの勾配値gを第2の出力引数として返すようにcostFunctionをコード化する。 それから私は与える

[theta, cost] = fminunc(@(t)(costFunction(t, X, y)), initial_theta, options);

ここで、Xはデータ行列、yは応答です。 Rで上記をどのように実装できますか?

11

2 答え

optim 関数を見てみましょう。 method = 'L-BFGS-B' を使用して拘束されていない最小化を行うことができ、グラジエントを計算する分析関数を指定することもできます

EDIT。 Benが正しく指摘したように、 fminunc は制約のない最適化を行います。これは、 Nelder-Mead または BFGS さらに、 fminunc のドキュメントから、 trust 領域メソッドを使用して大規模な最適化を行っていることにも気付きました。同じことをすると信じているRのパッケージ trust があります。 Rの最適化 タスクビューを見てみることをおすすめします。

9
追加された
私は混乱しています、私はOPが制約のない最適化を求めていて、制約のある最適化について記述していると思いました...? (どんな場合でも、 optim は正しい答えです。)
追加された 著者 Ben Bolker,
あなたが正しいです!私は何らかの理由で彼が制約のない最適化を求めていると思っていたことを知りません。私は同じことを指す編集を追加しました。
追加された 著者 Ramnath,

Rでは、制約最適化を行うためにRの関数 nlminb を使用することができます。

nlminb(start、objective、gradient = NULL、hessian = NULL、...、scale = 1、control = list()、lower = -Inf、upper = Inf)

開始は、パラメータのすべての初期値を含むベクトルです。目的はコスト関数または最小限に抑えたいその他の関数です。

1
追加された