機械学習 (R または同様のプラットフォーム) で解決したい単純な問題を定式化します。私のアルゴリズムは3 つのパラメーター(a、b、c) を取り、範囲 [0,1] のスコアs を返します。 . パラメータはすべてカテゴリです。a には 3 つのオプション、b には 4、c には 10 のオプションがあります。したがって、私のデータセットには 3 * 4 * 10 = 120 のケースがあります。高いスコアは望ましい (1 に近い) もので、低いスコアは望ましくない (0 に近い) ものです。アルゴリズムをブラック ボックスとして扱い、a、b、c を取り、s を返します。
データセットは次のようになります。
a, b, c, s
------------------
a1, b1, c1, 0.223
a1, b1, c2, 0.454
...
各パラメーターの s の密度をプロットすると、非常に広い分布が得られ、パフォーマンスが非常に良い (s > .8 ) 場合もあれば、悪い (s < .2 ) 場合もあります。
s が非常に高いケースを見ると、明確なパターンは見られません。全体的にパフォーマンスが悪いパラメータ値は、特定のパラメータと組み合わせると非常に良いパフォーマンスを発揮する場合があり、その逆も同様です。
特定の値 (a1 など) のパフォーマンスを測定するために、中央値を計算します。
median( mydataset[ a == a1]$s )
たとえば、中央値 (a1) = .5、中央値 (b3) = .9 ですが、それらを組み合わせると、s(a_1,b_3) = .3 という低い結果が得られます。一方、中央値(a2)=.3、中央値(b1)=.4、しかしs(a2,b1)=.7。
常にうまく機能するパラメーター値が存在しないことを考えると、統計的に有意な方法で (つまり、たまたま非常に高いスコアを持つ外れ値を除外して) 一緒にうまく機能すると思われる (2 つのパラメーターの) 組み合わせを探す必要があると思います。言い換えれば、最適なパラメーターを選択するためのポリシーを取得したいと考えています。たとえば、最高のパフォーマンスを発揮する組み合わせは (a1,b3)、(a2,b1) などです。
さて、これは機械学習を使って解ける最適化問題だと思います。
このコンテキストで推奨される標準的な手法は何ですか?
編集: 誰かがglpkを使用した線形計画法ソリューションを提案しましたが、線形計画法をこの問題に適用する方法がわかりません。