Как рассчитать вероятность выборки по модели гауссовой смеси (GMM) в Pyhton? - PullRequest
0 голосов
/ 04 марта 2020

Я смотрю на реализацию модели GaussianMixture в sklearn.mixture. Насколько я понимаю, функция predict_proba дает вероятности того, что выборка будет принадлежать каждому гауссову компоненту (P (M \ D)). Пример:

from sklearn import datasets 
from sklearn.mixture import GaussianMixture 

# load the iris dataset 
iris = datasets.load_iris() 

# select first two columns  
X = iris.data[:, :2] 

# turn it into a dataframe 
d = pd.DataFrame(X) 

# Build model, 3 classes
gmm = GaussianMixture(n_components = 3) 

# Fit the GMM model for the dataset  
gmm.fit(d) 

# Compute the probablities of a sample to belong to a component
proba_sample1 = gmm.predict_proba(d.iloc[0].values.reshape(1,-1)) 
proba_sample1

Out[0]: array([[7.09016312e-04, 9.99204553e-01, 8.64310149e-05]])

Исходя из результатов, я понимаю, что точка принадлежит второму компоненту (максимальное значение).

Но что я хочу вычислить, так это вероятность выборки при вся смесь. Есть ли в sklearn.mixture функция для вычисления этого? Если нет, то как его вычислить?

Я думаю, что это сумма его вероятности для каждого из компонентов, умноженная на вес каждого гауссова компонента (P = сумма [P (D \ M) P ( M)])

...