Class AttributeSelectedClassifier

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, AdditionalMeasureProducer, CapabilitiesHandler, 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: 1.26 $
    Author:
    Mark Hall (mhall@cs.waikato.ac.nz)
    See Also:
    Serialized Form
    • 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
      • 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
      • 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
      • buildClassifier

        public void buildClassifier​(Instances data)
                             throws java.lang.Exception
        Build the classifier on the dimensionally reduced data.
        Specified by:
        buildClassifier in class 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
        Overrides:
        distributionForInstance in class Classifier
        Parameters:
        instance - the instance to be classified
        Returns:
        the class distribution
        Throws:
        java.lang.Exception - if instance could not be classified successfully
      • 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 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
      • 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]