weka.classifiers.meta

## Class AttributeSelectedClassifier

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

- All Implemented Interfaces:
    java.io.Serializable, java.lang.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: 14259 $
  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 and Description
    `AttributeSelectedClassifier()` Default constructor.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.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.
    `java.util.Enumeration<java.lang.String>` | `enumerateMeasures()` Returns an enumeration of the additional measure names
    `java.lang.String` | `evaluatorTipText()` Returns the tip text for this property
    `java.lang.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(java.lang.String additionalMeasureName)` Returns the value of the named measure
    `java.lang.String[]` | `getOptions()` Gets the current settings of the Classifier.
    `java.lang.String` | `getRevision()` Returns the revision string.
    `ASSearch` | `getSearch()` Gets the search method used
    `java.lang.String` | `globalInfo()` Returns a string describing this search method
    `java.lang.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
    `java.util.Enumeration<Option>` | `listOptions()` Returns an enumeration describing the available options.
    `static void` | `main(java.lang.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
    `java.lang.String` | `searchTipText()` Returns the tip text for this property
    `void` | `setBatchSize(java.lang.String size)` Set the batch size to use.
    `void` | `setEvaluator(ASEvaluation evaluator)` Sets the attribute evaluator
    `void` | `setOptions(java.lang.String[] options)` Parses a given list of options.
    `void` | `setSearch(ASSearch search)` Sets the search method
    `java.lang.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 Detail

    - #### AttributeSelectedClassifier

          public AttributeSelectedClassifier()

      Default constructor.

  - ### Method Detail

    - #### globalInfo

          public java.lang.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 java.util.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(java.lang.String[] options)
                          throws java.lang.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:
        `java.lang.Exception` - if an option is not supported

    - #### getOptions

          public java.lang.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 java.lang.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 java.lang.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 `Classifier`
      Specified by:
        `getCapabilities` in interface `CapabilitiesHandler`
      Overrides:
        `getCapabilities` in class `SingleClassifierEnhancer`
      Returns:
        the capabilities of this classifier
      See Also:
        `Capabilities`

    - #### buildClassifier

          public void buildClassifier(Instances data)
                               throws java.lang.Exception

      Build the classifier on the dimensionally reduced data.
      Specified by:
        `buildClassifier` in interface `Classifier`
      Parameters:
        `data` - the training data
      Throws:
        `java.lang.Exception` - if the classifier could not be built successfully

    - #### distributionForInstance

          public double[] distributionForInstance(Instance instance)
                                           throws java.lang.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:
        `java.lang.Exception` - if instance could not be classified successfully

    - #### batchSizeTipText

          public java.lang.String batchSizeTipText()

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

    - #### setBatchSize

          public void setBatchSize(java.lang.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 java.lang.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 java.lang.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:
        `java.lang.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 java.lang.String graph()
                                 throws java.lang.Exception

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

    - #### toString

          public java.lang.String toString()

      Output a representation of this classifier
      Overrides:
        `toString` in class `java.lang.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 java.util.Enumeration<java.lang.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(java.lang.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:
        `java.lang.IllegalArgumentException` - if the named measure is not supported

    - #### getRevision

          public java.lang.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(java.lang.String[] argv)

      Main method for testing this class.
      Parameters:
        `argv` - should contain the following arguments: -t training file [-T test file] [-c class index]