重み付きサンプルのセットがあり、各サンプルの重みが0〜1であると仮定します。重みの高いサンプルにバイアスされている、ガウス混合分布のパラメーターを推定します。通常の重み付けされていない場合、ガウス混合推定はEMアルゴリズムを介して行われます。
重みを渡すことを許可する実装(どの言語でもOK)はありますか?そうでない場合、重みを考慮してアルゴリズムを変更するにはどうすればよいですか?そうでない場合、問題の最大対数尤度式の初期式に重みを組み込むにはどうすればよいですか?
重み付きサンプルのセットがあり、各サンプルの重みが0〜1であると仮定します。重みの高いサンプルにバイアスされている、ガウス混合分布のパラメーターを推定します。通常の重み付けされていない場合、ガウス混合推定はEMアルゴリズムを介して行われます。
重みを渡すことを許可する実装(どの言語でもOK)はありますか?そうでない場合、重みを考慮してアルゴリズムを変更するにはどうすればよいですか?そうでない場合、問題の最大対数尤度式の初期式に重みを組み込むにはどうすればよいですか?
私はちょうど同じ問題を抱えていました。投稿は古いものですが、他の人にとっては興味深いかもしれません。honkの答えは原則として正しいですが、それがアルゴリズムの実装にどのように影響するかをすぐに確認することはできません。期待値の最大化に関するウィキペディアの記事と非常に優れたチュートリアルから、変更を簡単に導き出すことができます。
$ v_i $がi番目のサンプルの重みである場合、チュートリアルのアルゴリズム(セクション6.2の終わりを参照)が変更され、$ gamma_{ij}$にその重み係数が乗算されます。新しい重み$w_j$を計算するには、$ n_j $を、nだけでなく、重み$ \ sum_ {i = 1} ^ {n}v_i$の合計で割る必要があります。それでおしまい...
加重対数尤度関数を計算できます。すべてのポイントにその重みを掛けるだけです。これには対数尤度関数を使用する必要があることに注意してください。
したがって、問題は $-\ln L = \sum_i w_i \ln f(x_i|q)$ (元の形式についてはウィキペディアの記事を参照) を最小化することになります。
他の回答は送信されないため、単なる提案です。
GMMで通常のEMを使用し(たとえば、OpenCVには多くの言語のラッパーが多数あります)、「より多くの重み」を持たせたいクラスターにいくつかのポイントを2回配置できます。そうすれば、EMはそれらの点をより重要と見なします。重要な場合は、後で余分なポイントを削除できます。
そうでなければ、高度な統計の強いバックグラウンドがない限り、これは非常に極端な数学になると思います。