2010-03-22 1 views
8

Предположим, у меня есть набор взвешенных образцов, где каждый образец имеет соответствующий вес между 0 и 1. Я хотел бы оценить параметры распределения гауссовой смеси, которые смещается к образцам с более высоким весом. В обычном невесовом случае оценка гауссовой смеси выполняется с помощью алгоритма ЭМ. Кто-нибудь знает реализацию (любой язык в порядке), который позволяет передавать веса? Если нет, кто-нибудь знает, как изменить алгоритм для учета весов? Если нет, может ли кто-нибудь дать мне подсказку о том, как включить весовые коэффициенты в исходную формулу формулировки проблемы с максимальным логарифмическим правдоподобием?Оценить плотность гауссова (смесь) из набора взвешенных образцов

Спасибо!

+0

является минимизация «EM» ошибка, или что-то совсем другое? Кроме того, существует * множество * числовых и аналитических пакетов, предназначенных для базовых и общих для высокоспециализированных. Это может помочь, если вы сказали что-то о своей проблемной области и предпочитаемой среде. Fortran? C++? Ява? Python? Вы хорошо изучаете крупный новый инструмент, например R или root? – dmckee

+0

Хорошо, тогда мой предпочтительный язык был бы Python. Но любой из вышеупомянутых языков, кроме root (никогда не слышал об этом), также был бы в порядке. EM обозначает максимизацию оценки и представляет собой общую итерационную схему, которая может быть использована для оценки параметров модели гауссовой смеси по данным. – Christian

+0

Я не знаком с этим методом и не могу дать никаких конкретных рекомендаций. – dmckee

ответ

0

Просто предложение, так как никакие другие ответы не отправляются.

Вы можете использовать обычный EM с GMM (для OpenCV для ex. Есть много оберток для многих языков) и поместите несколько очков в кластер, который вы хотите иметь «больше веса». Таким образом, ЭМ рассмотрит эти моменты более важными. Вы можете удалить дополнительные очки позже, если это имеет значение.

В противном случае я думаю, что это довольно экстремальная математика, если у вас нет сильного фона в расширенной статистике.

+0

Это не работает, когда у вас либо много точек, либо по существу нецелое веса. Как это случилось со мной, у меня есть: гистограмма миллионов точек с нецелыми весами ... – ansgri

3

Вы можете рассчитать взвешенную функцию журнала правдоподобия; просто умножьте каждую точку с ее весом. Обратите внимание, что для этого вам нужно использовать функцию log-Lijelihood.

Итак, ваша задача сводится к минимизации $ - \ ln L = \ sum_i w_i \ ln f (x_i | q) $ (см. the Wikipedia article для первоначальной формы).

4

У меня была такая же проблема. Хотя пост старше, это может быть интересно кому-то другому. Ответ honk в принципе правильный, просто не сразу увидеть, как это влияет на реализацию алгоритма. Из статьи в Википедии за Expectation Maximization и очень приятным Tutorial, изменения могут быть легко получены.

Если $ v_i $ - вес i-го образца, алгоритм из учебника (см. Конец раздела 6.2.) Изменяется так, что $ gamma_ {ij} $ умножается на этот весовой коэффициент. Для вычисления новых весов $ w_j $ $ n_j $ нужно разделить на сумму весов $ \ sum_ {i = 1}^{n} v_i $ вместо просто n. Вот и все ...

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