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:
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:
-
Field Summary
Fields inherited from class weka.classifiers.AbstractClassifier
BATCH_SIZE_DEFAULT, NUM_DECIMAL_PLACES_DEFAULT
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionaggregate
(NaiveBayes toAggregate) Aggregate an object with this onevoid
buildClassifier
(Instances instances) Generates the classifier.Returns the tip text for this propertydouble[]
distributionForInstance
(Instance instance) Calculates the class membership probabilities for the given test instance.void
Call to complete the aggregation process.Returns default capabilities of the classifier.Get the class estimator.Estimator[][]
Get all the conditional estimators.boolean
Get whether to display model output in the old, original format.Return the header that this classifier was trained withString[]
Gets the current settings of the classifier.Returns the revision string.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
Gets if kernel estimator is being used.boolean
Get whether supervised discretization is to be used.Returns a string describing this classifierReturns an enumeration describing the available options.static void
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.toString()
Returns a description of the classifier.void
updateClassifier
(Instance instance) Updates the classifier with the given instance.Returns the tip text for this propertyReturns the tip text for this propertyMethods 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
-
Constructor Details
-
NaiveBayes
public NaiveBayes()
-
-
Method Details
-
globalInfo
Returns a string describing this classifier- Returns:
- a description of the classifier suitable for displaying in the explorer/experimenter gui
-
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 interfaceTechnicalInformationHandler
- Returns:
- the technical information about this class
-
getCapabilities
Returns default capabilities of the classifier.- Specified by:
getCapabilities
in interfaceCapabilitiesHandler
- Specified by:
getCapabilities
in interfaceClassifier
- Overrides:
getCapabilities
in classAbstractClassifier
- Returns:
- the capabilities of this classifier
- See Also:
-
buildClassifier
Generates the classifier.- Specified by:
buildClassifier
in interfaceClassifier
- Parameters:
instances
- set of instances serving as training data- Throws:
Exception
- if the classifier has not been generated successfully
-
updateClassifier
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
Calculates the class membership probabilities for the given test instance.- Specified by:
distributionForInstance
in interfaceClassifier
- Overrides:
distributionForInstance
in classAbstractClassifier
- Parameters:
instance
- the instance to be classified- Returns:
- predicted class probability distribution
- Throws:
Exception
- if there is a problem generating the prediction
-
listOptions
Returns an enumeration describing the available options.- Specified by:
listOptions
in interfaceOptionHandler
- Overrides:
listOptions
in classAbstractClassifier
- Returns:
- an enumeration of all the available options.
-
setOptions
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 interfaceOptionHandler
- Overrides:
setOptions
in classAbstractClassifier
- Parameters:
options
- the list of options as an array of strings- Throws:
Exception
- if an option is not supported
-
getOptions
Gets the current settings of the classifier.- Specified by:
getOptions
in interfaceOptionHandler
- Overrides:
getOptions
in classAbstractClassifier
- Returns:
- an array of strings suitable for passing to setOptions
-
toString
Returns a description of the classifier. -
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
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
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
Return the header that this classifier was trained with- Returns:
- the header that this classifier was trained with
-
getConditionalEstimators
Get all the conditional estimators.- Returns:
- all the conditional estimators.
-
getClassEstimator
Get the class estimator.- Returns:
- the class estimator
-
getRevision
Returns the revision string.- Specified by:
getRevision
in interfaceRevisionHandler
- Overrides:
getRevision
in classAbstractClassifier
- Returns:
- the revision
-
aggregate
Description copied from interface:Aggregateable
Aggregate an object with this one- Specified by:
aggregate
in interfaceAggregateable<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
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 interfaceAggregateable<NaiveBayes>
- Throws:
Exception
- if the aggregation can't be finalized for some reason
-
main
Main method for testing this class.- Parameters:
argv
- the options
-