可変数のパラメーターを scipy のオプティマイザーの入力として使用する正しいアプローチを探しています。
入力パラメーター p1,...,pn のセットがあり、関数 func(p1,...,pn) を使用して品質基準を計算します。この値を最小化したい。
入力パラメータは 0 または 1 で、使用するかどうかを示します。品質基準の関数では、方程式から未使用の項を削除するためにそれらを「0」にする必要があるため、未使用のものをすべてパラメーター リストから単純に削除することはできません。
def func(parameters):
...calculate one scalar as quality criteria...
solution = optimize.fmin_l_bfgs_b(func,parameters,approx_grad=1,bounds=((0.0, 5.0),...,(0.0,5.0)) # This will vary all parameters
私のコード内では、オプティマイザーはエラーなしで実行されますが、もちろん、最適なソリューションを実現するために、指定されたすべてのパラメーターが変更されます。
たとえば、func に 10 個の入力パラメーターを使用する方法はありますが、オプティマイザーで使用されるのはそのうちの 5 つだけですか?
これまでのところ、未使用のパラメーターからの「0」入力が不要になるように func 定義を変更することしか考えられません。それを回避する方法についてのアイデアをいただければ幸いです。
助けてくれてありがとう!