15

最初に、私は科学的な数学や統計学の経験が不足していると言わせてください。これは非常によく知られた問題かもしれませんが、どこから始めればよいかわかりません。

f(x1, x2, ..., xn)x'ses を推測し、 の最大値を見つける必要がある関数がありますf。この関数には次のプロパティがあります。

  • 合計数またはパラメーターは通常 40 から 60 程度であるため、力ずくのアプローチは不可能です。

  • 各 x の可能な値は 0.01 から 2.99 までの範囲です

  • 関数は安定しています。つまり、f 値が高いほど、パラメーターの推定が優れていることを意味し、その逆も同様です。

これまでのところ、かなり基本的なメソッドを Python で実装しました。最初にすべてのパラメーターを 1 に設定し、新しい値をランダムに推測して、f が以前よりも高いかどうかを確認します。そうでない場合は、以前の値にロールバックします。10,000 回の反復を伴うループでは、これは何とか機能しているように見えますが、結果はおそらく完璧にはほど遠いものです。

最適なパラメーターの検索を改善する方法についての提案をいただければ幸いです。この問題をグーグルで検索すると、linke MCMC が出てきましたが、それは非常に高度な方法のようで、その方法を理解するのにも多くの時間が必要です。基本的なヒントや概念は、複雑な方法やアルゴリズムよりも役立ちます。

4

2 に答える 2

11

自分でやらないでください。SciPyをインストールし、その最適化ルーチンを使用します。scipy.optimize.minimizeぴったりのように見えます。

于 2013-07-23T15:18:04.327 に答える