0
$\begingroup$

This might not be the best forum for this question so please forgive me.

So I was demo'ed a custom naive bayesian classifier that accepted both positive & negative training data. An example:

"I am really excited about getting my python tonight"

This would be trained as positive on the class "pets", "happy" but negative against "python", "programming"

This dramatically increased how quickly a class could be trained accurately.

So my question: is this really naive bayesian classification? Is there anything else out there like this?

Additional information: The classifier didn't just return a single matching class against input but returned an array of classes and their "scores"

$\endgroup$
0
0
$\begingroup$

Not only is this a naive Bayesian classifier (so far as I understand your description), but it's a general rule that naive Bayes needs both positive and negative examples in its training data in order to perform well. A spam filter should have known examples of non-spam as well as known examples of spam.

$\endgroup$
7
  • $\begingroup$ Yes but traditionally the classifier would then have a "spam" and "not spam" class right? This system only had a "pets" and "programming" class. Maybe some magic behind the scenes? I have looked at multiple machine learning frameworks/libs that offer naive bayesian classification and haven't find an example that works like this. In traditional systems to train something as "not programming" you would simply train as "pets" but all training is "positive" in to the class your training against. $\endgroup$ – Kylee Jul 9 '17 at 19:43
  • $\begingroup$ In other words for each class in the classifier you can answer "yes" or "no" given a piece of training data. Nearly every system/implementation I've seen only allows you to train "yes" not "no" against a class. $\endgroup$ – Kylee Jul 9 '17 at 19:45
  • $\begingroup$ @Kylee I can't speak authoritatively about software when I don't know what the software is, of course, but it sounds like this program is doing classification for each of several variables (e.g., "pets", "python", and "programming") and not mentioning that each variable corresponds to two classes (e.g., "belongs to 'pets'" and "does not belong to 'pets'"). Or you may be confusing the dependent variable with the independent variables. $\endgroup$ – Kodiologist Jul 9 '17 at 20:01
  • $\begingroup$ "I can't speak authoritatively about software when I don't know what the software is" I figured this would be the answer. I don't think this is the case. The best analog I've been able to create is a set of classifiers, each with a positive and negative class. So the python classifier would have "python" and "not python" classes. Then multiple classifiers are compared based on the scores of their "on topic" and "off topic" classes. $\endgroup$ – Kylee Jul 9 '17 at 20:27
  • 1
    $\begingroup$ Thanks! This gives me some direction and that makes sense. $\endgroup$ – Kylee Jul 9 '17 at 23:39

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