GMM の EM ステップで、関数 gaussianND を次のように呼び出します。
pdf(:, j) = gaussianND(unseen_data, mu(j, :), sigma{j});
これは、各クラスター 'j' のすべてのデータ ポイントに対してガウスを評価します。150 個のデータ ポイントと 10 個のクラスターがあります。
次の gaussianND 関数のコード行で、「警告: 行列が特異であるか、特異に近いか、スケーリングが不適切です。結果が不正確である可能性があります。RCOND = NaN.」というエラーが表示されます。
pdf = 1 / sqrt((2*pi)^n * det(Sigma)) * exp(-1/2 * sum((meanDiff * inv(Sigma) .* meanDiff), 2));
基本的に多変量ガウスを計算します。EM ステップの 1 回の反復では、意味のあるクラスター確率 (各データ ポイントが各クラスターに属する確率) を取得しますが、反復を 1 回以上行うと、すべてのクラスター確率が「NaN」として取得され、上記の警告が表示されます。 .
誰かが理由と解決策を教えてもらえますか?