# BIC score for Gaussian Mixture Model

I'm not sure how to compute a BIC score for multiple classes. For exmaple , I have a supervised problem with 3 classes.I fit 3 gaussian using MLE. Then, if I want to compute BIC score: I have to compute log-likelihood for each point using mu and sigma of cluster to which this point belongs to.Sum it, sum them (because of logprobs), and add parameter of covariance complexity?

## migrated from stackoverflow.comMar 7 at 3:15

This question came from our site for professional and enthusiast programmers.

• Surely your software can compute the BIC for you? It would have had to maximize the overall log likelihood, right? I mean, I'm sure there are some people who can maximize a likelihood function by hand, but there's not many of them, and most of us mortals don't need to do that sort of thing. – Weiwen Ng Mar 7 at 3:41
• I am not sure if you still look for solution, but in case you do: If you happen to use Gaussian Mixture Model from Python's scikit-learn library, there you have Bayesian Information Criterion for GMM implemented. In your case, it could look like: from sklearn import mixture cv_type = "full" n_components = 3 gmm = mixture.GaussianMixture(n_components=n_components, covariance_type=cv_type) gmm.fit(X) model_bic = gmm.bic(X) Here X is matrix containing all the samples you fit GMM, it is assumed to be of dimensions n_samples x n_features. Full matrix in case you want to allow cross-diagonal t – Milica Aug 4 at 20:57