weka.classifiers.bayes
Class NaiveBayesSimple

java.lang.Object
  extended byweka.classifiers.Classifier
      extended byweka.classifiers.bayes.NaiveBayesSimple
All Implemented Interfaces:
java.lang.Cloneable, OptionHandler, java.io.Serializable

public class NaiveBayesSimple
extends Classifier

Class for building and using a simple Naive Bayes classifier. Numeric attributes are modelled by a normal distribution. For more information, see

Richard Duda and Peter Hart (1973).Pattern Classification and Scene Analysis. Wiley, New York.

Version:
$Revision: 1.12 $
Author:
Eibe Frank (eibe@cs.waikato.ac.nz)
See Also:
Serialized Form

Field Summary
private  double[][][] m_Counts
          All the counts for nominal attributes.
private  double[][] m_Devs
          The standard deviations for numeric attributes.
private  Instances m_Instances
          The instances used for training.
private  double[][] m_Means
          The means for numeric attributes.
private  double[] m_Priors
          The prior probabilities of the classes.
private static double NORM_CONST
          Constant for normal distribution.
 
Fields inherited from class weka.classifiers.Classifier
m_Debug
 
Constructor Summary
NaiveBayesSimple()
           
 
Method Summary
 void buildClassifier(Instances instances)
          Generates the classifier.
 double[] distributionForInstance(Instance instance)
          Calculates the class membership probabilities for the given test instance.
 java.lang.String globalInfo()
          Returns a string describing this classifier
static void main(java.lang.String[] argv)
          Main method for testing this class.
private  double normalDens(double x, double mean, double stdDev)
          Density function of normal distribution.
 java.lang.String toString()
          Returns a description of the classifier.
 
Methods inherited from class weka.classifiers.Classifier
classifyInstance, debugTipText, forName, getDebug, getOptions, listOptions, makeCopies, setDebug, setOptions
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

m_Counts

private double[][][] m_Counts
All the counts for nominal attributes.


m_Means

private double[][] m_Means
The means for numeric attributes.


m_Devs

private double[][] m_Devs
The standard deviations for numeric attributes.


m_Priors

private double[] m_Priors
The prior probabilities of the classes.


m_Instances

private Instances m_Instances
The instances used for training.


NORM_CONST

private static double NORM_CONST
Constant for normal distribution.

Constructor Detail

NaiveBayesSimple

public NaiveBayesSimple()
Method Detail

globalInfo

public java.lang.String globalInfo()
Returns a string describing this classifier

Returns:
a description of the classifier suitable for displaying in the explorer/experimenter gui

buildClassifier

public void buildClassifier(Instances instances)
                     throws java.lang.Exception
Generates the classifier.

Specified by:
buildClassifier in class Classifier
Parameters:
instances - set of instances serving as training data
Throws:
java.lang.Exception - if the classifier has not been generated successfully

distributionForInstance

public double[] distributionForInstance(Instance instance)
                                 throws java.lang.Exception
Calculates the class membership probabilities for the given test instance.

Overrides:
distributionForInstance in class Classifier
Parameters:
instance - the instance to be classified
Returns:
predicted class probability distribution
Throws:
java.lang.Exception - if distribution can't be computed

toString

public java.lang.String toString()
Returns a description of the classifier.

Returns:
a description of the classifier as a string.

normalDens

private double normalDens(double x,
                          double mean,
                          double stdDev)
Density function of normal distribution.


main

public static void main(java.lang.String[] argv)
Main method for testing this class.

Parameters:
argv - the options