2013-03-21 3 views
2

У меня есть объект распределения гауссовой смеси obj из 64 измерений и хотел бы поместить его в функцию pdf, чтобы узнать вероятность определенной точки.Использование функции matlab «pdf»

Но когда я печатаю pdf(obj,obj.mu(1,:)) для проверки объекта, получая очень высокую вероятность (как 2.4845e + 069)

И это не имеет смысла, вероятность причина должна лежит между нулем и единицей.

Есть ли у моей проблемы с Matlab какие-либо проблемы?

p.s. даже pdf(obj,obj.mu(1,:)+obj.Sigma(1,1)*rand()) дают высокую вероятность (2.1682e + 069)

+0

Функция плотности вероятности не обеспечивает вероятность определенного значения. Чтобы ответить на ваш вопрос, было бы полезно, если бы вы разместили создание 'obj'. – Deve

+0

@Deve obj генерируется через стандартную функцию * gmdistribution *. – Rein

+0

Я ожидал этого. Какие параметры вы перешли к этой функции? – Deve

ответ

2

Перво наперво: функция плотности вероятности не всегда оценивают в 1, это просто интегрирует к 1 над своим доменом.

Кроме того, при установке модели гауссовой смеси вы видите problem of singularities (см. Стр. 434, рис. 9.7). Некоторый компонент, сжимающийся на единую точку данных, неизбежно приводит к тому, что дисперсия переходит в 0, а PDF - взорваться. Это часто встречается в гауссовских моделях смеси, поскольку оно не является лог-выпуклым и в функции правдоподобия имеется множество локальных максимумов. Мы пытаемся найти хорошо организованный локальный максимум, который хорошо работает, а особенности - особенно плохие случаи.

Когда вы увидите это, вы захотите повторить алгоритм с разными начальными точками или уменьшить количество используемых вами компонентов. В приведенной выше книге также рекомендуется просто сбросить конкретный компонент на другое значение.

Другим подходом было бы использование байесовского подхода путем принятия предварительного или регуляризационного термина для ваших параметров, который будет наказывать запредельные значения, такие как 0 сигма-параметров.

Вы можете косвенно управлять первой частью с использованием разных начальных значений в gmdistribution.fit. Во второй части вы можете использовать аргумент Regularize: http://www.mathworks.com/help/stats/gmdistribution.fit.html

+0

Огромное спасибо! Очень подробное объяснение! Я проверил матрицу ковариации и обнаружил, что существует много нулевых записей. После применения регуляризованного термина вероятный вид смысла теперь. Но значение становится очень низким: 'pdf (obj, obj.mu (1, :)) = 1.4080e-052' это нормально? – Rein

+0

Да, формат PDF будет очень маленьким, если у вас много измерений. Возможно, вы захотите работать с журнальным пробником, чтобы избежать переполнения. –

Смежные вопросы