2

64次元のガウス混合分布オブジェクトを取得しました。これを関数に入れて、特定の点の確率を見つけobjたいと思います。pdf

しかしpdf(obj,obj.mu(1,:))、オブジェクトをテストするために入力すると、非常に高い確率が得られます (2.4845e+069 など)。

そして、それは意味がありません。なぜなら、確率は 0 と 1 の間でなければならないからです。

私のmatlabに問題はありますか?

ps でもpdf(obj,obj.mu(1,:)+obj.Sigma(1,1)*rand())高い確率が得られます (2.1682e+069)

4

1 に答える 1

2

まず最初に: 確率密度関数は常に 1 に評価されるとは限らず、単にその領域にわたって 1 に統合されるだけです。

さらに、あなたが見ているのは、ガウス混合モデルを当てはめたときの特異点の問題です(434 ページ、図 9.7 を参照)。一部のコンポーネントが単一のデータ ポイントに折りたたまれると、必然的に分散が 0 になり、PDF が爆発します。これは、対数凸ではなく、尤度関数に多くの極大値があるため、ガウス混合モデルでよく発生します。私たちは、適切に機能する適切に動作する局所的な最大値を見つけようとしますが、特異点は特に悪いケースです。

これが表示されたら、別の開始点でアルゴリズムを再実行するか、使用しているコンポーネントの数を減らしたいと思うでしょう。上記の本では、特定のコンポーネントを別の値にリセットすることも推奨しています。

別のアプローチは、パラメータに事前項または正則化項を採用することでベイジアン アプローチを使用することです。これにより、0 シグマ パラメータなどの異様な値にペナルティが課せられます。

で異なる開始値を使用して、最初の部分を間接的に制御できますgmdistribution.fitRegularize2 番目の部分では、次の引数を使用できます: http://www.mathworks.com/help/stats/gmdistribution.fit.html

于 2013-03-22T05:18:50.830 に答える