Class FilteredClassifier
- All Implemented Interfaces:
Serializable
,Cloneable
,Classifier
,IterativeClassifier
,BatchPredictor
,CapabilitiesHandler
,CapabilitiesIgnorer
,CommandlineRunnable
,Drawable
,OptionHandler
,PartitionGenerator
,Randomizable
,RevisionHandler
,WeightedAttributesHandler
,WeightedInstancesHandler
- Direct Known Subclasses:
RandomizableFilteredClassifier
-F <filter specification> Full class name of filter to use, followed by filter options. default: "weka.filters.supervised.attribute.Discretize -R first-last -precision 6"
-W <classifier name> Full name of base classifier. (default: weka.classifiers.trees.J48)
-S num The random number seed to be used (default 1).-doNotCheckForModifiedClassAttribute
If this is set, the classifier will not check whether the filter modifies the class attribute (use with caution).
-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.
Options specific to classifier weka.classifiers.trees.J48:
-U Use unpruned tree.
-C <pruning confidence> Set confidence threshold for pruning. (default 0.25)
-M <minimum number of instances> Set minimum number of instances per leaf. (default 2)
-R Use reduced error pruning.
-N <number of folds> Set number of folds for reduced error pruning. One fold is used as pruning set. (default 3)
-B Use binary splits only.
-S Don't perform subtree raising.
-L Do not clean up after the tree has been built.
-A Laplace smoothing for predicted probabilities.
-S <seed> Seed for random data shuffling (default 1).
- Version:
- $Revision: 15519 $
- Author:
- Len Trigg (trigg@cs.waikato.ac.nz)
- See Also:
-
Field Summary
Fields inherited from class weka.classifiers.AbstractClassifier
BATCH_SIZE_DEFAULT, NUM_DECIMAL_PLACES_DEFAULT
Fields inherited from interface weka.core.Drawable
BayesNet, Newick, NOT_DRAWABLE, TREE
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionTool tip text for this propertyvoid
buildClassifier
(Instances data) Build the classifier on the filtered data.double[]
distributionForInstance
(Instance instance) Classifies a given instance after filtering.double[][]
Batch scoring method.void
done()
Signal end of iterating, useful for any house-keeping/cleanup (If the base classifier supports this.)Returns the tip text for this propertyReturns the tip text for this propertyvoid
generatePartition
(Instances data) Builds the classifier to generate a partition.Gets the preferred batch size from the base learner if it implements BatchPredictor.Returns default capabilities of the classifier.boolean
Returns true if classifier checks whether class attribute has been modified by filter.Gets the filter used.double[]
getMembershipValues
(Instance inst) Computes an array that has a value for each element in the partition.String[]
Gets the current settings of the Classifier.boolean
Returns true if the model is to be finalized (or has been finalized) after training.Returns the revision string.Returns a string describing this classifiergraph()
Returns graph describing the classifier (if possible).int
Returns the type of graph this classifier represents.boolean
Returns true if the base classifier implements BatchPredictor and is able to generate batch predictions efficientlyvoid
Initializes an iterative classifier.Returns an enumeration describing the available options.static void
Main method for testing this class.boolean
next()
Performs one iteration.int
Returns the number of elements in the partition.Tool tip text for finalize propertyvoid
setBatchSize
(String size) Set the batch size to use.void
setDoNotCheckForModifiedClassAttribute
(boolean flag) Use this method to determine whether classifier checks whether class attribute has been modified by filter.void
Sets the filtervoid
setOptions
(String[] options) Parses a given list of options.void
setResume
(boolean resume) If called with argument true, then the next time done() is called the model is effectively "frozen" and no further iterations can be performedtoString()
Output a representation of this classifierMethods inherited from class weka.classifiers.RandomizableSingleClassifierEnhancer
getSeed, seedTipText, setSeed
Methods inherited from class weka.classifiers.SingleClassifierEnhancer
classifierTipText, getClassifier, postExecution, preExecution, setClassifier
Methods inherited from class weka.classifiers.AbstractClassifier
classifyInstance, debugTipText, doNotCheckCapabilitiesTipText, forName, getDebug, getDoNotCheckCapabilities, getNumDecimalPlaces, makeCopies, makeCopy, numDecimalPlacesTipText, run, runClassifier, setDebug, setDoNotCheckCapabilities, setNumDecimalPlaces
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface weka.classifiers.Classifier
classifyInstance
-
Constructor Details
-
FilteredClassifier
public FilteredClassifier()Default constructor.
-
-
Method Details
-
globalInfo
Returns a string describing this classifier- Returns:
- a description of the classifier suitable for displaying in the explorer/experimenter gui
-
graphType
public int graphType()Returns the type of graph this classifier represents. -
graph
Returns graph describing the classifier (if possible). -
generatePartition
Builds the classifier to generate a partition. (If the base classifier supports this.)- Specified by:
generatePartition
in interfacePartitionGenerator
- Throws:
Exception
-
getMembershipValues
Computes an array that has a value for each element in the partition. (If the base classifier supports this.)- Specified by:
getMembershipValues
in interfacePartitionGenerator
- Throws:
Exception
-
numElements
Returns the number of elements in the partition. (If the base classifier supports this.)- Specified by:
numElements
in interfacePartitionGenerator
- Throws:
Exception
-
initializeClassifier
Initializes an iterative classifier. (If the base classifier supports this.)- Specified by:
initializeClassifier
in interfaceIterativeClassifier
- Parameters:
data
- the instances to be used in induction- Throws:
Exception
- if the model cannot be initialized
-
next
Performs one iteration. (If the base classifier supports this.)- Specified by:
next
in interfaceIterativeClassifier
- Returns:
- false if no further iterations could be performed, true otherwise
- Throws:
Exception
- if this iteration fails for unexpected reasons
-
done
Signal end of iterating, useful for any house-keeping/cleanup (If the base classifier supports this.)- Specified by:
done
in interfaceIterativeClassifier
- Throws:
Exception
- if cleanup fails
-
resumeTipText
Tool tip text for finalize property- Returns:
- the tool tip text for the finalize property
-
setResume
If called with argument true, then the next time done() is called the model is effectively "frozen" and no further iterations can be performed- Specified by:
setResume
in interfaceIterativeClassifier
- Parameters:
resume
- true if the model is to be finalized after performing iterations- Throws:
Exception
- if finalization cannot be set
-
getResume
public boolean getResume()Returns true if the model is to be finalized (or has been finalized) after training.- Specified by:
getResume
in interfaceIterativeClassifier
- Returns:
- the current value of finalize
-
listOptions
Returns an enumeration describing the available options.- Specified by:
listOptions
in interfaceOptionHandler
- Overrides:
listOptions
in classRandomizableSingleClassifierEnhancer
- Returns:
- an enumeration of all the available options.
-
setOptions
Parses a given list of options. Valid options are:-F <filter specification> Full class name of filter to use, followed by filter options. default: "weka.filters.supervised.attribute.Discretize -R first-last -precision 6"
-W <classifier name> Full name of base classifier. (default: weka.classifiers.trees.J48)
-S num The random number seed to be used.
-doNotCheckForModifiedClassAttribute
If this is set, the classifier will not check whether the filter modifies the class attribute (use with caution).-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-laces
The number of decimal places for the output of numbers in the model.-batch-size
The desired batch size for batch prediction.Options specific to classifier weka.classifiers.trees.J48:
-U Use unpruned tree.
-C <pruning confidence> Set confidence threshold for pruning. (default 0.25)
-M <minimum number of instances> Set minimum number of instances per leaf. (default 2)
-R Use reduced error pruning.
-N <number of folds> Set number of folds for reduced error pruning. One fold is used as pruning set. (default 3)
-B Use binary splits only.
-S Don't perform subtree raising.
-L Do not clean up after the tree has been built.
-A Laplace smoothing for predicted probabilities.
-Q <seed> Seed for random data shuffling (default 1).
- Specified by:
setOptions
in interfaceOptionHandler
- Overrides:
setOptions
in classRandomizableSingleClassifierEnhancer
- Parameters:
options
- the list of options as an array of strings- Throws:
Exception
- if an option is not supported
-
doNotCheckForModifiedClassAttributeTipText
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
getDoNotCheckForModifiedClassAttribute
public boolean getDoNotCheckForModifiedClassAttribute()Returns true if classifier checks whether class attribute has been modified by filter. -
setDoNotCheckForModifiedClassAttribute
public void setDoNotCheckForModifiedClassAttribute(boolean flag) Use this method to determine whether classifier checks whether class attribute has been modified by filter. -
getOptions
Gets the current settings of the Classifier.- Specified by:
getOptions
in interfaceOptionHandler
- Overrides:
getOptions
in classRandomizableSingleClassifierEnhancer
- Returns:
- an array of strings suitable for passing to setOptions
-
filterTipText
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
setFilter
Sets the filter- Parameters:
filter
- the filter with all options set.
-
getFilter
Gets the filter used.- Returns:
- the filter
-
getCapabilities
Returns default capabilities of the classifier.- Specified by:
getCapabilities
in interfaceCapabilitiesHandler
- Specified by:
getCapabilities
in interfaceClassifier
- Overrides:
getCapabilities
in classSingleClassifierEnhancer
- Returns:
- the capabilities of this classifier
- See Also:
-
buildClassifier
Build the classifier on the filtered data.- Specified by:
buildClassifier
in interfaceClassifier
- Parameters:
data
- the training data- Throws:
Exception
- if the classifier could not be built successfully
-
distributionForInstance
Classifies a given instance after filtering.- Specified by:
distributionForInstance
in interfaceClassifier
- Overrides:
distributionForInstance
in classAbstractClassifier
- Parameters:
instance
- the instance to be classified- Returns:
- the class distribution for the given instance
- Throws:
Exception
- if instance could not be classified successfully
-
batchSizeTipText
Tool tip text for this property- Overrides:
batchSizeTipText
in classAbstractClassifier
- Returns:
- the tool tip for this property
-
setBatchSize
Set the batch size to use. Gets passed through to the base learner if it implements BatchPredictor. Otherwise it is just ignored.- Specified by:
setBatchSize
in interfaceBatchPredictor
- Overrides:
setBatchSize
in classAbstractClassifier
- Parameters:
size
- the batch size to use
-
getBatchSize
Gets the preferred batch size from the base learner if it implements BatchPredictor. Returns 1 as the preferred batch size otherwise.- Specified by:
getBatchSize
in interfaceBatchPredictor
- Overrides:
getBatchSize
in classAbstractClassifier
- Returns:
- the batch size to use
-
distributionsForInstances
Batch scoring method. Calls the appropriate method for the base learner if it implements BatchPredictor. Otherwise it simply calls the distributionForInstance() method repeatedly.- Specified by:
distributionsForInstances
in interfaceBatchPredictor
- Overrides:
distributionsForInstances
in classAbstractClassifier
- Parameters:
insts
- the instances to get predictions for- Returns:
- an array of probability distributions, one for each instance
- Throws:
Exception
- if a problem occurs
-
implementsMoreEfficientBatchPrediction
public boolean implementsMoreEfficientBatchPrediction()Returns true if the base classifier implements BatchPredictor and is able to generate batch predictions efficiently- Specified by:
implementsMoreEfficientBatchPrediction
in interfaceBatchPredictor
- Overrides:
implementsMoreEfficientBatchPrediction
in classAbstractClassifier
- Returns:
- true if the base classifier can generate batch predictions efficiently
-
toString
Output a representation of this classifier -
getRevision
Returns the revision string.- Specified by:
getRevision
in interfaceRevisionHandler
- Overrides:
getRevision
in classAbstractClassifier
- Returns:
- the revision
-
main
Main method for testing this class.- Parameters:
argv
- should contain the following arguments: -t training file [-T test file] [-c class index]
-