Package weka.classifiers.bayes

# 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`

public class NaiveBayes extends AbstractClassifier implements OptionHandler, WeightedInstancesHandler, WeightedAttributesHandler, TechnicalInformationHandler, Aggregateable<NaiveBayes>
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: 15520 $
Author:
  Len Trigg (trigg@cs.waikato.ac.nz), Eibe Frank (eibe@cs.waikato.ac.nz)
See Also:
  - Serialized Form

- ## Field Summary

  ### Fields inherited from class weka.classifiers.AbstractClassifier

  `BATCH_SIZE_DEFAULT, NUM_DECIMAL_PLACES_DEFAULT`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `NaiveBayes()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `NaiveBayes`
  `aggregate(NaiveBayes toAggregate)`
  Aggregate an object with this one
  `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.
  `void`
  `finalizeAggregation()`
  Call to complete the aggregation process.
  `Capabilities`
  `getCapabilities()`
  Returns default capabilities of the classifier.
  `Estimator`
  `getClassEstimator()`
  Get the class estimator.
  `Estimator[][]`
  `getConditionalEstimators()`
  Get all the conditional estimators.
  `boolean`
  `getDisplayModelInOldFormat()`
  Get whether to display model output in the old, original format.
  `Instances`
  `getHeader()`
  Return the header that this classifier was trained with
  `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<Option>`
  `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 s)`
  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

  `batchSizeTipText, classifyInstance, debugTipText, distributionsForInstances, doNotCheckCapabilitiesTipText, forName, getBatchSize, getDebug, getDoNotCheckCapabilities, getNumDecimalPlaces, implementsMoreEfficientBatchPrediction, makeCopies, makeCopy, numDecimalPlacesTipText, postExecution, preExecution, run, runClassifier, setBatchSize, setDebug, setDoNotCheckCapabilities, setNumDecimalPlaces`

  ### Methods inherited from class java.lang.Object

  `equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## 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:
      - `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<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