Package weka.classifiers.meta

# Class AttributeSelectedClassifier

java.lang.Object
weka.classifiers.AbstractClassifier
weka.classifiers.SingleClassifierEnhancer
weka.classifiers.meta.AttributeSelectedClassifier

All Implemented Interfaces:
  `Serializable`, `Cloneable`, `Classifier`, `AdditionalMeasureProducer`, `BatchPredictor`, `CapabilitiesHandler`, `CapabilitiesIgnorer`, `CommandlineRunnable`, `Drawable`, `OptionHandler`, `RevisionHandler`, `WeightedInstancesHandler`

public class AttributeSelectedClassifier extends SingleClassifierEnhancer implements OptionHandler, Drawable, AdditionalMeasureProducer, WeightedInstancesHandler
Dimensionality of training and test data is reduced by attribute selection before being passed on to a classifier.

Valid options are:

     -E <attribute evaluator specification>
      Full class name of attribute evaluator, followed
      by its options.
      eg: "weka.attributeSelection.CfsSubsetEval -L"
      (default weka.attributeSelection.CfsSubsetEval)

     -S <search method specification>
      Full class name of search method, followed
      by its options.
      eg: "weka.attributeSelection.BestFirst -D 1"
      (default weka.attributeSelection.BestFirst)

     -D
      If set, classifier is run in debug mode and
      may output additional info to the console

     -W
      Full name of base classifier.
      (default: weka.classifiers.trees.J48)

     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).

Version:
  $Revision: 15520 $
Author:
  Mark Hall (mhall@cs.waikato.ac.nz)
See Also:
  - Serialized Form

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

  Constructors
  Constructor
  Description
  `AttributeSelectedClassifier()`
  Default constructor.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `batchSizeTipText()`
  Tool tip text for this property
  `void`
  `buildClassifier(Instances data)`
  Build the classifier on the dimensionally reduced data.
  `double[]`
  `distributionForInstance(Instance instance)`
  Classifies a given instance after attribute selection
  `double[][]`
  `distributionsForInstances(Instances insts)`
  Batch scoring method.
  `Enumeration<String>`
  `enumerateMeasures()`
  Returns an enumeration of the additional measure names
  `String`
  `evaluatorTipText()`
  Returns the tip text for this property
  `String`
  `getBatchSize()`
  Gets the preferred batch size from the base learner if it implements BatchPredictor.
  `Capabilities`
  `getCapabilities()`
  Returns default capabilities of the classifier.
  `ASEvaluation`
  `getEvaluator()`
  Gets the attribute evaluator used
  `double`
  `getMeasure(String additionalMeasureName)`
  Returns the value of the named measure
  `String[]`
  `getOptions()`
  Gets the current settings of the Classifier.
  `String`
  `getRevision()`
  Returns the revision string.
  `ASSearch`
  `getSearch()`
  Gets the search method used
  `String`
  `globalInfo()`
  Returns a string describing this search method
  `String`
  `graph()`
  Returns graph describing the classifier (if possible).
  `int`
  `graphType()`
  Returns the type of graph this classifier represents.
  `boolean`
  `implementsMoreEfficientBatchPrediction()`
  Returns true if the base classifier implements BatchPredictor and is able to generate batch predictions efficiently
  `Enumeration<Option>`
  `listOptions()`
  Returns an enumeration describing the available options.
  `static void`
  `main(String[] argv)`
  Main method for testing this class.
  `double`
  `measureNumAttributesSelected()`
  Additional measure --- number of attributes selected
  `double`
  `measureSelectionTime()`
  Additional measure --- time taken (milliseconds) to select the attributes
  `double`
  `measureTime()`
  Additional measure --- time taken (milliseconds) to select attributes and build the classifier
  `String`
  `searchTipText()`
  Returns the tip text for this property
  `void`
  `setBatchSize(String size)`
  Set the batch size to use.
  `void`
  `setEvaluator(ASEvaluation evaluator)`
  Sets the attribute evaluator
  `void`
  `setOptions(String[] options)`
  Parses a given list of options.
  `void`
  `setSearch(ASSearch search)`
  Sets the search method
  `String`
  `toString()`
  Output a representation of this classifier

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

- ## Constructor Details

  - ### AttributeSelectedClassifier

    public AttributeSelectedClassifier()
    Default constructor.

- ## Method Details

  - ### globalInfo

    public String globalInfo()
    Returns a string describing this search method
    Returns:
      a description of the search method suitable for displaying in the explorer/experimenter gui

  - ### listOptions

    public Enumeration<Option> listOptions()
    Returns an enumeration describing the available options.
    Specified by:
      `listOptions` in interface `OptionHandler`
    Overrides:
      `listOptions` in class `SingleClassifierEnhancer`
    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:

         -E <attribute evaluator specification>
          Full class name of attribute evaluator, followed
          by its options.
          eg: "weka.attributeSelection.CfsSubsetEval -L"
          (default weka.attributeSelection.CfsSubsetEval)

         -S <search method specification>
          Full class name of search method, followed
          by its options.
          eg: "weka.attributeSelection.BestFirst -D 1"
          (default weka.attributeSelection.BestFirst)

         -D
          If set, classifier is run in debug mode and
          may output additional info to the console

         -W
          Full name of base classifier.
          (default: weka.classifiers.trees.J48)

         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 interface `OptionHandler`
    Overrides:
      `setOptions` in class `SingleClassifierEnhancer`
    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 `SingleClassifierEnhancer`
    Returns:
      an array of strings suitable for passing to setOptions

  - ### evaluatorTipText

    public String evaluatorTipText()
    Returns the tip text for this property
    Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui

  - ### setEvaluator

    public void setEvaluator(ASEvaluation evaluator)
    Sets the attribute evaluator
    Parameters:
      `evaluator` - the evaluator with all options set.

  - ### getEvaluator

    public ASEvaluation getEvaluator()
    Gets the attribute evaluator used
    Returns:
      the attribute evaluator

  - ### searchTipText

    public String searchTipText()
    Returns the tip text for this property
    Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui

  - ### setSearch

    public void setSearch(ASSearch search)
    Sets the search method
    Parameters:
      `search` - the search method with all options set.

  - ### getSearch

    public ASSearch getSearch()
    Gets the search method used
    Returns:
      the search method

  - ### 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 `SingleClassifierEnhancer`
    Returns:
      the capabilities of this classifier
    See Also:
      - `Capabilities`

  - ### buildClassifier

    public void buildClassifier(Instances data) throws Exception
    Build the classifier on the dimensionally reduced data.
    Specified by:
      `buildClassifier` in interface `Classifier`
    Parameters:
      `data` - the training data
    Throws:
      `Exception` - if the classifier could not be built successfully

  - ### distributionForInstance

    public double[] distributionForInstance(Instance instance) throws Exception
    Classifies a given instance after attribute selection
    Specified by:
      `distributionForInstance` in interface `Classifier`
    Overrides:
      `distributionForInstance` in class `AbstractClassifier`
    Parameters:
      `instance` - the instance to be classified
    Returns:
      the class distribution
    Throws:
      `Exception` - if instance could not be classified successfully

  - ### batchSizeTipText

    public String batchSizeTipText()
    Tool tip text for this property
    Overrides:
      `batchSizeTipText` in class `AbstractClassifier`
    Returns:
      the tool tip for this property

  - ### setBatchSize

    public void setBatchSize(String size)
    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 interface `BatchPredictor`
    Overrides:
      `setBatchSize` in class `AbstractClassifier`
    Parameters:
      `size` - the batch size to use

  - ### getBatchSize

    public String 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 interface `BatchPredictor`
    Overrides:
      `getBatchSize` in class `AbstractClassifier`
    Returns:
      the batch size to use

  - ### distributionsForInstances

    public double[][] distributionsForInstances(Instances insts) throws Exception
    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 interface `BatchPredictor`
    Overrides:
      `distributionsForInstances` in class `AbstractClassifier`
    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 interface `BatchPredictor`
    Overrides:
      `implementsMoreEfficientBatchPrediction` in class `AbstractClassifier`
    Returns:
      true if the base classifier can generate batch predictions efficiently

  - ### graphType

    public int graphType()
    Returns the type of graph this classifier represents.
    Specified by:
      `graphType` in interface `Drawable`
    Returns:
      the type of graph

  - ### graph

    public String graph() throws Exception
    Returns graph describing the classifier (if possible).
    Specified by:
      `graph` in interface `Drawable`
    Returns:
      the graph of the classifier in dotty format
    Throws:
      `Exception` - if the classifier cannot be graphed

  - ### toString

    public String toString()
    Output a representation of this classifier
    Overrides:
      `toString` in class `Object`
    Returns:
      a representation of this classifier

  - ### measureNumAttributesSelected

    public double measureNumAttributesSelected()
    Additional measure --- number of attributes selected
    Returns:
      the number of attributes selected

  - ### measureSelectionTime

    public double measureSelectionTime()
    Additional measure --- time taken (milliseconds) to select the attributes
    Returns:
      the time taken to select attributes

  - ### measureTime

    public double measureTime()
    Additional measure --- time taken (milliseconds) to select attributes and build the classifier
    Returns:
      the total time (select attributes + build classifier)

  - ### enumerateMeasures

    public Enumeration<String> enumerateMeasures()
    Returns an enumeration of the additional measure names
    Specified by:
      `enumerateMeasures` in interface `AdditionalMeasureProducer`
    Returns:
      an enumeration of the measure names

  - ### getMeasure

    public double getMeasure(String additionalMeasureName)
    Returns the value of the named measure
    Specified by:
      `getMeasure` in interface `AdditionalMeasureProducer`
    Parameters:
      `additionalMeasureName` - the name of the measure to query for its value
    Returns:
      the value of the named measure
    Throws:
      `IllegalArgumentException` - if the named measure is not supported

  - ### getRevision

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

  - ### main

    public static void main(String[] argv)
    Main method for testing this class.
    Parameters:
      `argv` - should contain the following arguments: -t training file [-T test file] [-c class index]