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?

  • $\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 '19 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 '19 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.