Package weka.classifiers
Class AbstractClassifier
java.lang.Object
weka.classifiers.AbstractClassifier
- All Implemented Interfaces:
Serializable
,Cloneable
,Classifier
,BatchPredictor
,CapabilitiesHandler
,CapabilitiesIgnorer
,CommandlineRunnable
,OptionHandler
,RevisionHandler
- Direct Known Subclasses:
BayesNet
,DecisionStump
,DecisionTable
,HoeffdingTree
,IBk
,J48
,JRip
,KStar
,LinearRegression
,LMT
,Logistic
,LogisticBase
,M5Base
,MultilayerPerceptron
,MultipleClassifiersCombiner
,NaiveBayes
,NaiveBayesMultinomial
,NaiveBayesMultinomialText
,OneR
,PART
,PMMLClassifier
,PreConstructedLinearModel
,RandomizableClassifier
,RandomTree
,REPTree
,RuleNode
,SerializedClassifier
,SimpleLinearRegression
,SimpleLogistic
,SingleClassifierEnhancer
,SMO
,SMOreg
,VotedPerceptron
,ZeroR
public abstract class AbstractClassifier
extends Object
implements Classifier, BatchPredictor, Cloneable, Serializable, OptionHandler, CapabilitiesHandler, RevisionHandler, CapabilitiesIgnorer, CommandlineRunnable
Abstract classifier. All schemes for numeric or nominal prediction in Weka
extend this class. Note that a classifier MUST either implement
distributionForInstance() or classifyInstance().
- Version:
- $Revision: 15519 $
- Author:
- Eibe Frank (eibe@cs.waikato.ac.nz), Len Trigg (trigg@cs.waikato.ac.nz)
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionstatic String
Default preferred batch size for batch predictionsstatic int
The number of decimal places used when printing numbers in the model. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionReturns the tip text for this propertydouble
classifyInstance
(Instance instance) Classifies the given test instance.Returns the tip text for this propertydouble[]
distributionForInstance
(Instance instance) Predicts the class memberships for a given instance.double[][]
Batch prediction method.Returns the tip text for this propertystatic Classifier
Creates a new instance of a classifier given it's class name and (optional) arguments to pass to it's setOptions method.Get the preferred batch size for batch prediction.Returns the Capabilities of this classifier.boolean
getDebug()
Get whether debugging is turned on.boolean
Get whether capabilities checking is turned off.int
Get the number of decimal places.String[]
Gets the current settings of the Classifier.Returns the revision string.boolean
Return true if this classifier can generate batch predictions in an efficient manner.Returns an enumeration describing the available options.static Classifier[]
makeCopies
(Classifier model, int num) Creates a given number of deep copies of the given classifier using serialization.static Classifier
makeCopy
(Classifier model) Creates a deep copy of the given classifier using serialization.Returns the tip text for this propertyvoid
Perform any teardown stuff that might need to happen after execution.void
Perform any setup stuff that might need to happen before commandline execution.void
Execute the supplied object.static void
runClassifier
(Classifier classifier, String[] options) runs the classifier instance with the given options.void
setBatchSize
(String size) Set the preferred batch size for batch prediction.void
setDebug
(boolean debug) Set debugging mode.void
setDoNotCheckCapabilities
(boolean doNotCheckCapabilities) Set whether not to check capabilities.void
setNumDecimalPlaces
(int num) Set the number of decimal places.void
setOptions
(String[] options) Parses a given list of options.Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface weka.classifiers.Classifier
buildClassifier
-
Field Details
-
NUM_DECIMAL_PLACES_DEFAULT
public static int NUM_DECIMAL_PLACES_DEFAULTThe number of decimal places used when printing numbers in the model. -
BATCH_SIZE_DEFAULT
Default preferred batch size for batch predictions
-
-
Constructor Details
-
AbstractClassifier
public AbstractClassifier()
-
-
Method Details
-
forName
Creates a new instance of a classifier given it's class name and (optional) arguments to pass to it's setOptions method. If the classifier implements OptionHandler and the options parameter is non-null, the classifier will have it's options set.- Parameters:
classifierName
- the fully qualified class name of the classifieroptions
- an array of options suitable for passing to setOptions. May be null.- Returns:
- the newly created classifier, ready for use.
- Throws:
Exception
- if the classifier name is invalid, or the options supplied are not acceptable to the classifier
-
makeCopy
Creates a deep copy of the given classifier using serialization.- Parameters:
model
- the classifier to copy- Returns:
- a deep copy of the classifier
- Throws:
Exception
- if an error occurs
-
makeCopies
Creates a given number of deep copies of the given classifier using serialization.- Parameters:
model
- the classifier to copynum
- the number of classifier copies to create.- Returns:
- an array of classifiers.
- Throws:
Exception
- if an error occurs
-
runClassifier
runs the classifier instance with the given options.- Parameters:
classifier
- the classifier to runoptions
- the commandline options
-
classifyInstance
Classifies the given test instance. The instance has to belong to a dataset when it's being classified. Note that a classifier MUST implement either this or distributionForInstance().- Specified by:
classifyInstance
in interfaceClassifier
- Parameters:
instance
- the instance to be classified- Returns:
- the predicted most likely class for the instance or Utils.missingValue() if no prediction is made
- Throws:
Exception
- if an error occurred during the prediction
-
distributionForInstance
Predicts the class memberships for a given instance. If an instance is unclassified, the returned array elements must be all zero. If the class is numeric, the array must consist of only one element, which contains the predicted value. Note that a classifier MUST implement either this or classifyInstance().- Specified by:
distributionForInstance
in interfaceClassifier
- Parameters:
instance
- the instance to be classified- Returns:
- an array containing the estimated membership probabilities of the test instance in each class or the numeric prediction
- Throws:
Exception
- if distribution could not be computed successfully
-
listOptions
Returns an enumeration describing the available options.- Specified by:
listOptions
in interfaceOptionHandler
- Returns:
- an enumeration of all the available options.
-
getOptions
Gets the current settings of the Classifier.- Specified by:
getOptions
in interfaceOptionHandler
- Returns:
- an array of strings suitable for passing to setOptions
-
setOptions
Parses a given list of options. Valid options are:-output-debug-info
If set, classifier is run in debug mode and may output additional info to the console.-do-not-check-capabilities
If set, classifier capabilities are not checked before classifier is built (use with caution).-num-decimal-places
The number of decimal places for the output of numbers in the model.-batch-size
The desired batch size for batch prediction.- Specified by:
setOptions
in interfaceOptionHandler
- Parameters:
options
- the list of options as an array of strings- Throws:
Exception
- if an option is not supported
-
getDebug
public boolean getDebug()Get whether debugging is turned on.- Returns:
- true if debugging output is on
-
setDebug
public void setDebug(boolean debug) Set debugging mode.- Parameters:
debug
- true if debug output should be printed
-
debugTipText
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
getDoNotCheckCapabilities
public boolean getDoNotCheckCapabilities()Get whether capabilities checking is turned off.- Specified by:
getDoNotCheckCapabilities
in interfaceCapabilitiesIgnorer
- Returns:
- true if capabilities checking is turned off.
-
setDoNotCheckCapabilities
public void setDoNotCheckCapabilities(boolean doNotCheckCapabilities) Set whether not to check capabilities.- Specified by:
setDoNotCheckCapabilities
in interfaceCapabilitiesIgnorer
- Parameters:
doNotCheckCapabilities
- true if capabilities are not to be checked.
-
doNotCheckCapabilitiesTipText
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
numDecimalPlacesTipText
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
getNumDecimalPlaces
public int getNumDecimalPlaces()Get the number of decimal places. -
setNumDecimalPlaces
public void setNumDecimalPlaces(int num) Set the number of decimal places. -
batchSizeTipText
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
setBatchSize
Set the preferred batch size for batch prediction.- Specified by:
setBatchSize
in interfaceBatchPredictor
- Parameters:
size
- the batch size to use
-
getBatchSize
Get the preferred batch size for batch prediction.- Specified by:
getBatchSize
in interfaceBatchPredictor
- Returns:
- the preferred batch size
-
implementsMoreEfficientBatchPrediction
public boolean implementsMoreEfficientBatchPrediction()Return true if this classifier can generate batch predictions in an efficient manner. Default implementation here returns false. Subclasses to override as appropriate.- Specified by:
implementsMoreEfficientBatchPrediction
in interfaceBatchPredictor
- Returns:
- true if this classifier can generate batch predictions in an efficient manner.
-
distributionsForInstances
Batch prediction method. This default implementation simply calls distributionForInstance() for each instance in the batch. If subclasses can produce batch predictions in a more efficient manner than this they should override this method and also return true from implementsMoreEfficientBatchPrediction()- Specified by:
distributionsForInstances
in interfaceBatchPredictor
- Parameters:
batch
- the instances to get predictions for- Returns:
- an array of probability distributions, one for each instance in the batch
- Throws:
Exception
- if a problem occurs.
-
getCapabilities
Returns the Capabilities of this classifier. Maximally permissive capabilities are allowed by default. Derived classifiers should override this method and first disable all capabilities and then enable just those capabilities that make sense for the scheme.- Specified by:
getCapabilities
in interfaceCapabilitiesHandler
- Specified by:
getCapabilities
in interfaceClassifier
- Returns:
- the capabilities of this object
- See Also:
-
getRevision
Returns the revision string.- Specified by:
getRevision
in interfaceRevisionHandler
- Returns:
- the revision
-
preExecution
Perform any setup stuff that might need to happen before commandline execution. Subclasses should override if they need to do something here- Specified by:
preExecution
in interfaceCommandlineRunnable
- Throws:
Exception
- if a problem occurs during setup
-
run
Execute the supplied object.- Specified by:
run
in interfaceCommandlineRunnable
- Parameters:
toRun
- the object to executeoptions
- any options to pass to the object- Throws:
Exception
- if the object is not of the expected type.
-
postExecution
Perform any teardown stuff that might need to happen after execution. Subclasses should override if they need to do something here- Specified by:
postExecution
in interfaceCommandlineRunnable
- Throws:
Exception
- if a problem occurs during teardown
-