weka.classifiers.bayes
Class NaiveBayes

java.lang.Object
  extended by weka.classifiers.AbstractClassifier
      extended by weka.classifiers.bayes.NaiveBayes
All Implemented Interfaces:
Serializable, Cloneable, Classifier, CapabilitiesHandler, OptionHandler, RevisionHandler, TechnicalInformationHandler, WeightedInstancesHandler
Direct Known Subclasses:
NaiveBayesUpdateable

public class NaiveBayes
extends AbstractClassifier
implements OptionHandler, WeightedInstancesHandler, TechnicalInformationHandler

Class for a Naive Bayes classifier using estimator classes. Numeric estimator precision values are chosen based on analysis of the training data. For this reason, the classifier is not an UpdateableClassifier (which in typical usage are initialized with zero training instances) -- if you need the UpdateableClassifier functionality, use the NaiveBayesUpdateable classifier. The NaiveBayesUpdateable classifier will use a default precision of 0.1 for numeric attributes when buildClassifier is called with zero training instances.

For more information on Naive Bayes classifiers, see

George H. John, Pat Langley: Estimating Continuous Distributions in Bayesian Classifiers. In: Eleventh Conference on Uncertainty in Artificial Intelligence, San Mateo, 338-345, 1995.

BibTeX:

 @inproceedings{John1995,
    address = {San Mateo},
    author = {George H. John and Pat Langley},
    booktitle = {Eleventh Conference on Uncertainty in Artificial Intelligence},
    pages = {338-345},
    publisher = {Morgan Kaufmann},
    title = {Estimating Continuous Distributions in Bayesian Classifiers},
    year = {1995}
 }
 

Valid options are:

 -K
  Use kernel density estimator rather than normal
  distribution for numeric attributes
 -D
  Use supervised discretization to process numeric attributes
 
 -O
  Display model in old format (good when there are many classes)
 

Version:
$Revision: 8034 $
Author:
Len Trigg ([email protected]), Eibe Frank ([email protected])
See Also:
Serialized Form

Constructor Summary
NaiveBayes()
           
 
Method Summary
 void buildClassifier(Instances instances)
          Generates the classifier.
 String displayModelInOldFormatTipText()
          Returns the tip text for this property
 double[] distributionForInstance(Instance instance)
          Calculates the class membership probabilities for the given test instance.
 Capabilities getCapabilities()
          Returns default capabilities of the classifier.
 boolean getDisplayModelInOldFormat()
          Get whether to display model output in the old, original format.
 String[] getOptions()
          Gets the current settings of the classifier.
 String getRevision()
          Returns the revision string.
 TechnicalInformation getTechnicalInformation()
          Returns an instance of a TechnicalInformation object, containing detailed information about the technical background of this class, e.g., paper reference or book this class is based on.
 boolean getUseKernelEstimator()
          Gets if kernel estimator is being used.
 boolean getUseSupervisedDiscretization()
          Get whether supervised discretization is to be used.
 String globalInfo()
          Returns a string describing this classifier
 Enumeration listOptions()
          Returns an enumeration describing the available options.
static void main(String[] argv)
          Main method for testing this class.
 void setDisplayModelInOldFormat(boolean d)
          Set whether to display model output in the old, original format.
 void setOptions(String[] options)
          Parses a given list of options.
 void setUseKernelEstimator(boolean v)
          Sets if kernel estimator is to be used.
 void setUseSupervisedDiscretization(boolean newblah)
          Set whether supervised discretization is to be used.
 String toString()
          Returns a description of the classifier.
 void updateClassifier(Instance instance)
          Updates the classifier with the given instance.
 String useKernelEstimatorTipText()
          Returns the tip text for this property
 String useSupervisedDiscretizationTipText()
          Returns the tip text for this property
 
Methods inherited from class weka.classifiers.AbstractClassifier
classifyInstance, debugTipText, forName, getDebug, makeCopies, makeCopy, runClassifier, setDebug
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

NaiveBayes

public NaiveBayes()
Method Detail

globalInfo

public String globalInfo()
Returns a string describing this classifier

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

getTechnicalInformation

public TechnicalInformation getTechnicalInformation()
Returns an instance of a TechnicalInformation object, containing detailed information about the technical background of this class, e.g., paper reference or book this class is based on.

Specified by:
getTechnicalInformation in interface TechnicalInformationHandler
Returns:
the technical information about this class

getCapabilities

public Capabilities getCapabilities()
Returns default capabilities of the classifier.

Specified by:
getCapabilities in interface Classifier
Specified by:
getCapabilities in interface CapabilitiesHandler
Overrides:
getCapabilities in class AbstractClassifier
Returns:
the capabilities of this classifier
See Also:
Capabilities

buildClassifier

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

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

updateClassifier

public void updateClassifier(Instance instance)
                      throws Exception
Updates the classifier with the given instance.

Parameters:
instance - the new training instance to include in the model
Throws:
Exception - if the instance could not be incorporated in the model.

distributionForInstance

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

Specified by:
distributionForInstance in interface Classifier
Overrides:
distributionForInstance in class AbstractClassifier
Parameters:
instance - the instance to be classified
Returns:
predicted class probability distribution
Throws:
Exception - if there is a problem generating the prediction

listOptions

public Enumeration listOptions()
Returns an enumeration describing the available options.

Specified by:
listOptions in interface OptionHandler
Overrides:
listOptions in class AbstractClassifier
Returns:
an enumeration of all the available options.

setOptions

public void setOptions(String[] options)
                throws Exception
Parses a given list of options.

Valid options are:

 -K
  Use kernel density estimator rather than normal
  distribution for numeric attributes
 -D
  Use supervised discretization to process numeric attributes
 
 -O
  Display model in old format (good when there are many classes)
 

Specified by:
setOptions in interface OptionHandler
Overrides:
setOptions in class AbstractClassifier
Parameters:
options - the list of options as an array of strings
Throws:
Exception - if an option is not supported

getOptions

public String[] getOptions()
Gets the current settings of the classifier.

Specified by:
getOptions in interface OptionHandler
Overrides:
getOptions in class AbstractClassifier
Returns:
an array of strings suitable for passing to setOptions

toString

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

Overrides:
toString in class Object
Returns:
a description of the classifier as a string.

useKernelEstimatorTipText

public String useKernelEstimatorTipText()
Returns the tip text for this property

Returns:
tip text for this property suitable for displaying in the explorer/experimenter gui

getUseKernelEstimator

public boolean getUseKernelEstimator()
Gets if kernel estimator is being used.

Returns:
Value of m_UseKernelEstimatory.

setUseKernelEstimator

public void setUseKernelEstimator(boolean v)
Sets if kernel estimator is to be used.

Parameters:
v - Value to assign to m_UseKernelEstimatory.

useSupervisedDiscretizationTipText

public String useSupervisedDiscretizationTipText()
Returns the tip text for this property

Returns:
tip text for this property suitable for displaying in the explorer/experimenter gui

getUseSupervisedDiscretization

public boolean getUseSupervisedDiscretization()
Get whether supervised discretization is to be used.

Returns:
true if supervised discretization is to be used.

setUseSupervisedDiscretization

public void setUseSupervisedDiscretization(boolean newblah)
Set whether supervised discretization is to be used.

Parameters:
newblah - true if supervised discretization is to be used.

displayModelInOldFormatTipText

public String displayModelInOldFormatTipText()
Returns the tip text for this property

Returns:
tip text for this property suitable for displaying in the explorer/experimenter gui

setDisplayModelInOldFormat

public void setDisplayModelInOldFormat(boolean d)
Set whether to display model output in the old, original format.

Parameters:
d - true if model ouput is to be shown in the old format

getDisplayModelInOldFormat

public boolean getDisplayModelInOldFormat()
Get whether to display model output in the old, original format.

Returns:
true if model ouput is to be shown in the old format

getRevision

public String getRevision()
Returns the revision string.

Specified by:
getRevision in interface RevisionHandler
Overrides:
getRevision in class AbstractClassifier
Returns:
the revision

main

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

Parameters:
argv - the options


Copyright © 2013 University of Waikato, Hamilton, NZ. All Rights Reserved.