Python を使用して、ガウス混合モデルを一連の加重データ ポイントに適合させたいと考えています。
私は sklearn.mixture.GMM() を試しましたが、これはすべてのデータ ポイントを均等に重み付けするという事実を除いて正常に動作します。この方法でデータポイントに重みを割り当てる方法を知っている人はいますか? 「重みを増やす」ためにデータポイントを数回使用しようとしましたが、これは大規模なデータセットには効果がないようです。
EM アルゴリズムを自分で実装することも考えましたが、これは上記の GMM 法などよりもはるかに遅く、大規模なデータセットの計算時間が非常に長くなるようです。
EM アルゴリズム cv2.EM() の opencv メソッドを発見しました。これも問題なく動作しますが、sklearn.mixture.GMM と同じ問題があり、さらに、共分散に許容される値の最小値を変更する方法がないようです。または、共分散の最小値を 0.001 などに変更する方法はありますか? プローブ パラメータを使ってデータに重みを付けられるといいのですが、これは単なる出力パラメータのようで、フィッティング プロセスには影響しませんね。probs0 を使用し、trainM を使用して M ステップでアルゴリズムを開始しても、どちらも役に立ちませんでした。probs0 については、(データポイントの数) x (GMM コンポーネントの数) の行列を使用しました。その列は同じですが、データ ポイントの重み付けパラメーターはデータ ポイントに対応する行に書き込まれます。これでも問題は解決しませんでした。
上記の方法を操作する方法を知っている人はいますか、またはGMMに加重データを適合させるための別の方法を知っている人はいますか?