mahout-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Suneel Marthi <suneel_mar...@yahoo.com>
Subject Re: complementary naive bayes classifier
Date Fri, 21 Feb 2014 05:25:28 GMT
Answering myself here.

Looking at the code and reading the relevant sections of the paper (see Section 3.1 in the
Rennie paper) , seems to me that the implementation is in place for theta normalization. 
Now its just a matter of having to test and validate the output.








On Friday, February 21, 2014 12:10 AM, Suneel Marthi <suneel_marthi@yahoo.com> wrote:
 
Complimentary Naive Bayes does exist in Mahout (invoked with -c option when running BayesDriver).


The code for ThetaSummer job does exist and the code being still commented out (been that
way since Mahout 0.7) could be either due to oversight or due to not having tested Theta Normalization
thoroughly.

There's a jira already open for this, see MAHOUT-1369.  Robin Anil, could u explain if this
code can be uncommented or if its still not functional?

For whomever that would like to
 work on this, it would be great to add code comments (presently missing from this code) and
also refer the original paper (see below).  

For reference, Mahout Naive Bayes (and complementary Naive Bayes) classifiers impl is based
on the Rennie paper on this subject - http://people.csail.mit.edu/jrennie/papers/icml03-nb.pdf










On Thursday, February 20, 2014 11:40 PM, Andrew Musselman <andrew.musselman@gmail.com>
wrote:

It's an
 option when you run the examples as I recall.  Search in examples/bin and you can trace
it out.


> On Feb 20, 2014, at 8:02 PM, qiaoresearcher <qiaoresearcher@gmail.com> wrote:
> 
> Does mahout have complementary naive bayes implementation available?
> I checked the mahout source code, it seems the author did not finish it
> yet? as shown in the following, the thetaSummer job is not submitted.
> 
> public final class TrainNaiveBayesJob extends AbstractJob {
> 
> ....
> 
> thetaSummer.getConfiguration().setBoolean(ThetaMapper.TRAIN_COMPLEMENTARY,
> trainComplementary);
> /* TODO(robinanil): Enable this when thetanormalization works.
>    succeeded = thetaSummer.waitForCompletion(true);
>    if (!succeeded) {
>      return -1;
>    }*/
> 
> .....
> 
> }
> 
> Any comments will be appreciated.
Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message