I listen for tweets matching keywords. When I receive a tweet, it may or may not be part of the set of things I'm interested about. Think about the Gemini Awards, a show similar to the Oscars, in Canada. #Gemini also happens to be an astrological sign, and many, many, many people talk astrology on Twitter. Now, imagine I have thousands of those TV show keywords I'm watching for on Twitter / Facebook / et al.

I thought of using Naive Bayes Classifier(s) to determine if the interaction's part of my result set or not. I want to know if I should create / maintain one classifier per TV show, or one global classifier. On the one hand, having one classifier per TV show would mean:

  • I can parallelize training per TV show (membership tests can be parallelized for both approaches);
  • Training is very fine grained;
  • The classifiers answer one of two categories: in or out;
  • A message that mentions two or more TV shows would be classified "in" by multiple classifiers;
  • When something is really outside of what we want, we have to train all N classifiers on this;
  • New TV shows can be trained very quickly into their resulting domain.

On the other hand, one classifiers means:

  • Only one show at a time can be trained;
  • Only one kind of answer can be returned per message: show X or no shows;
  • Adding a new TV show would imply a longer training period, to rebalance the common words into the different categories;
  • Training for irrelevancy is very easy, since there is only one classifier to talk about.

I'm wondering about general performance and storage characteristics for one or more Bayes Classifier. Maybe I'm also taking a completely wrong approach and should be using a different algorithm to determine membership?

  • 1
    $\begingroup$ "One Bayes classifier to rule them all" and in the darkness bind them? Should we infer something about your feelings about Bayes classifiers from the choice of title? :-) $\endgroup$ Oct 15, 2011 at 2:15
  • $\begingroup$ Only seemed an appropriate title, and for nerds / geeks, it's fun :) $\endgroup$ Oct 18, 2011 at 2:02

1 Answer 1


You've got a classic multi-class classification problem. There are some specialized methods for dealing with these, but I'm under the impression they're not fantastic. This one is reasonably understandable, and has a good theoretical foundation.

If you're going with the 1 vs. all approach to this problem (which is what you've described), I'd suggest starting with a bunch of N. Bayes classifiers. Often they work alright, and they're fast and easy to train. If you get poor performance, you could switch to something a bit more heavy duty, like a SVM.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.