2012-03-21 13 views
4

私は(Rまたは類似のプラットフォームで)機械学習を解決したいのですが、簡単な問題を定式化されます:私のアルゴリズム3パラメータ(A、B、C)を取り、そしてスコアを返す s [0,1]の範囲内にある。パラメータはすべてカテゴリ:aは3つのオプション、bは4、cは10です。 したがって、私のデータセットは3 * 4 * 10 = 120のケースを持ちます。 高いスコアが望ましい(1に近い)、低いスコアは0に近い(0に近い)。 アルゴリズムをブラックボックスとして扱い、a、b、cをとり、sを返しましょう。この単純な最適化の機械学習アルゴリズムは何ですか?

データセットは以下のようになります。私は、各パラメータに対するSの密度をプロットした場合

a, b, c, s 
------------------ 
a1, b1, c1, 0.223 
a1, b1, c2, 0.454 
... 

、私はいくつかのケースは非常によく行われている非常に広い分布、(S> 0.8)、他の人を取得ひどく(s < .2)。

sが非常に高い場合を見ると、明確なパターンは見えません。 全体的に性能が悪いパラメータ値は、特定のパラメータとの組み合わせで非常によく機能し、その逆もあります。 (A1など)、Iは、中央値の計算方法も、特定の値を行い測定するため

:例えば

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)などがあります。

これは機械学習を使用して解決できる最適化の問題だと思います。

この文脈でどのような標準的なテクニックをお勧めしますか?

EDIT:誰かがglpkで線形計画法を提案しましたが、この問題に線形計画法を適用する方法はわかりません。

+0

120件しかないので、期待スコアを条件付きでa、b、cの値で計算し、どの組み合わせが最もよく機能するかを確認してください。しかし、過剰適合を防ぐために大量のデータが必要になります。結果の重要性を大まかに知るために、各条件付き期待値に対してp値を計算することができます。それらがすべて十分に低い場合、あなたは完了です。そうでない場合は、平滑化のいくつかの種類(たとえば、平均スコアに向かって縮小する)を調べることができます。 –

+0

この質問の最も標準的な手法は、線形回帰です。特定のパラメータの値を予測することができます。より一般的に - あなたの3つのパラメータで最大値を与える関数を得るには – Anton

+0

回帰を実行すると、a1、a2などの係数とRの2乗が得られます。彼らが私にトップパフォーマンスの値をどのように伝えているかはわかりません。 – Mulone

答えて

1

この質問の最も標準的な手法は、線形回帰です。特定のパラメータの値を予測することができます。より一般的には、3つのパラメータで最大値を与える関数を得ること。

+0

回帰を実行すると、a1、a2などの係数とRの2乗が得られます。彼らが私にトップパフォーマンスの値をどのように伝えているかはわかりません。 – Mulone

+1

線形回帰を使用する場合、パラメータ値間の相互作用について(つまり、唯一の相互作用が加算的であること)、非常に強力な前提があります。 –

関連する問題