1

可変数のパラメーターを 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 定義を変更することしか考えられません。それを回避する方法についてのアイデアをいただければ幸いです。

助けてくれてありがとう!

4

2 に答える 2