Class NaiveBayes

java.lang.Object
weka.classifiers.AbstractClassifier
weka.classifiers.bayes.NaiveBayes
All Implemented Interfaces:
Serializable, Cloneable, Classifier, Aggregateable<NaiveBayes>, BatchPredictor, CapabilitiesHandler, CapabilitiesIgnorer, CommandlineRunnable, OptionHandler, RevisionHandler, TechnicalInformationHandler, WeightedAttributesHandler, WeightedInstancesHandler
Direct Known Subclasses:
NaiveBayesUpdateable

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: 15519 $
Author:
Len Trigg (trigg@cs.waikato.ac.nz), Eibe Frank (eibe@cs.waikato.ac.nz)
See Also:
  • Constructor Details

    • NaiveBayes

      public NaiveBayes()
  • Method Details

    • 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 CapabilitiesHandler
      Specified by:
      getCapabilities in interface Classifier
      Overrides:
      getCapabilities in class AbstractClassifier
      Returns:
      the capabilities of this classifier
      See Also:
    • 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<Option> 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 s)
      Set whether supervised discretization is to be used.
      Parameters:
      s - 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
    • getHeader

      public Instances getHeader()
      Return the header that this classifier was trained with
      Returns:
      the header that this classifier was trained with
    • getConditionalEstimators

      public Estimator[][] getConditionalEstimators()
      Get all the conditional estimators.
      Returns:
      all the conditional estimators.
    • getClassEstimator

      public Estimator getClassEstimator()
      Get the class estimator.
      Returns:
      the class estimator
    • getRevision

      public String getRevision()
      Returns the revision string.
      Specified by:
      getRevision in interface RevisionHandler
      Overrides:
      getRevision in class AbstractClassifier
      Returns:
      the revision
    • aggregate

      public NaiveBayes aggregate(NaiveBayes toAggregate) throws Exception
      Description copied from interface: Aggregateable
      Aggregate an object with this one
      Specified by:
      aggregate in interface Aggregateable<NaiveBayes>
      Parameters:
      toAggregate - the object to aggregate
      Returns:
      the result of aggregation
      Throws:
      Exception - if the supplied object can't be aggregated for some reason
    • finalizeAggregation

      public void finalizeAggregation() throws Exception
      Description copied from interface: Aggregateable
      Call to complete the aggregation process. Allows implementers to do any final processing based on how many objects were aggregated.
      Specified by:
      finalizeAggregation in interface Aggregateable<NaiveBayes>
      Throws:
      Exception - if the aggregation can't be finalized for some reason
    • main

      public static void main(String[] argv)
      Main method for testing this class.
      Parameters:
      argv - the options