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.com Mar 7 at 3:15

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

  • $\begingroup$ 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. $\endgroup$ – Weiwen Ng Mar 7 at 3:41
  • $\begingroup$ 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 $\endgroup$ – Milica Aug 4 at 20:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.