2015-01-28 2 views
5

Я использую scikit-learn, чтобы подогнать многомерную гауссову модель смеси к некоторым данным (которая блестяще работает). Но мне нужно иметь возможность получить новый GMM-условный код для переменных, и набор инструментов scikit, похоже, не в состоянии сделать это, что меня удивило, потому что это похоже на довольно элементарную вещь, которую вы хотите сделать ,Поиск условной модели гауссовой смеси с использованием scikit-learn.mixture.GMM

Wikipedia has a good explanation того, что я пытаюсь сделать (для одного гауссова, а не GMM), и я просто могу реализовать его сам, но мои математические вычисления не велики, и я могу видеть это занимает много времени.

Кто-нибудь уже это сделал? Есть ли простой способ сделать это с помощью NumPy/SciPy/Scikit-learn?

+0

Нарежьте свой тензор данных по соответствующим осям. –

+0

@SlaterTyranus I _think_ вы предполагаете, что я вписываю GMM в нарезанную версию моего набора данных. Я хочу получить условный GMM от GMM, который я уже применил к полному набору данных. – TomG

+0

@TomG Привет, Том, вам удалось найти решение вашего вопроса? Принятый ответ не работает для меня. – gelazari

ответ

2

Попробуйте найти pypr. Из документации, вот как вы бы найти GMM кондиционированного на одной или нескольких переменных:

# Now we will find the conditional distribution of x given y 
(con_cen, con_cov, new_p_k) = gmm.cond_dist(np.array([np.nan, y]), \ 
    cen_lst, cov_lst, p_k) 

Насколько я помню, есть примеры, которые приходят с пакетом.

+0

Я нервничал из-за использования кода, описанного как «на ранних этапах» и который не обновлялся в течение 4 лет, но я дал ему попробовать. К сожалению, пример em_gm.py (с условным GMM) не работает - автор, похоже, использовал ключевое слово «iter» в качестве имени переменной в определении gmm.em_gm, что приводит к сбою. – TomG

+0

В примере, указанном в документах, установите «max_iter = 400» вместо «iter = 400» и «iter_call = None». Если вы хотите отслеживать ход своего алгоритма EM, вы можете изменить функцию графика. – statBeginner

+0

Спасибо! Это и несколько других проблем (например, тот факт, что некоторые документальные функции находятся только в SVN, а не в последней загрузке), и у меня это работает! – TomG

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