weka.filters
Class AttributeSelectionFilter

java.lang.Object
  |
  +--weka.filters.Filter
        |
        +--weka.filters.AttributeSelectionFilter
All Implemented Interfaces:
OptionHandler, java.io.Serializable

public class AttributeSelectionFilter
extends Filter
implements OptionHandler

Filter for doing attribute selection.

Valid options are:

-S <"Name of search class [search options]">
Set search method for subset evaluators.
eg. -S "weka.attributeSelection.BestFirst -S 8"

-E <"Name of attribute/subset evaluation class [evaluator options]">
Set the attribute/subset evaluator.
eg. -E "weka.attributeSelection.CfsSubsetEval -L"

Author:
Mark Hall (mhall@cs.waikato.ac.nz)
See Also:
Serialized Form

Fields inherited from class weka.filters.Filter
m_NewBatch
 
Constructor Summary
AttributeSelectionFilter()
          Constructor
 
Method Summary
 boolean batchFinished()
          Signify that this batch of input to the filter is finished.
protected  void convertInstance(Instance instance)
          Convert a single instance over.
 ASEvaluation getEvaluator()
          Get the name of the attribute/subset evaluator
 java.lang.String[] getOptions()
          Gets the current settings for the attribute selection (search, evaluator) etc.
 ASSearch getSearch()
          Get the name of the search method
 boolean input(Instance instance)
          Input an instance for filtering.
 java.util.Enumeration listOptions()
          Returns an enumeration describing the available options
static void main(java.lang.String[] argv)
          Main method for testing this class.
protected  void resetOptions()
          set options to their default values
 void setEvaluator(ASEvaluation evaluator)
          set a string holding the name of a attribute/subset evaluator
 void setOptions(java.lang.String[] options)
          Parses a given list of options.
protected  void setOutputFormat()
          Set the output format.
 void setSearch(ASSearch search)
          Set as string holding the name of a search class
 
Methods inherited from class weka.filters.Filter
batchFilterFile, bufferInput, copyStringValues, copyStringValues, filterFile, flushInput, getInputFormat, getInputStringIndex, getOutputFormat, getOutputStringIndex, getStringIndices, inputFormat, isOutputFormatDefined, numPendingOutput, output, outputFormat, outputFormatPeek, outputPeek, push, resetQueue, setInputFormat, setOutputFormat, useFilter
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AttributeSelectionFilter

public AttributeSelectionFilter()
Constructor
Method Detail

listOptions

public java.util.Enumeration listOptions()
Returns an enumeration describing the available options
Specified by:
listOptions in interface OptionHandler
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:

-S <"Name of search class [search options]">
Set search method for subset evaluators.
eg. -S "weka.attributeSelection.BestFirst -S 8"

-E <"Name of attribute/subset evaluation class [evaluator options]">
Set the attribute/subset evaluator.
eg. -E "weka.attributeSelection.CfsSubsetEval -L"

Specified by:
setOptions in interface OptionHandler
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 for the attribute selection (search, evaluator) etc.
Specified by:
getOptions in interface OptionHandler
Returns:
an array of strings suitable for passing to setOptions()

setEvaluator

public void setEvaluator(ASEvaluation evaluator)
set a string holding the name of a attribute/subset evaluator

setSearch

public void setSearch(ASSearch search)
Set as string holding the name of a search class

getEvaluator

public ASEvaluation getEvaluator()
Get the name of the attribute/subset evaluator
Returns:
the name of the attribute/subset evaluator as a string

getSearch

public ASSearch getSearch()
Get the name of the search method
Returns:
the name of the search method as a string

input

public boolean input(Instance instance)
              throws java.lang.Exception
Input an instance for filtering. Ordinarily the instance is processed and made available for output immediately. Some filters require all instances be read before producing output.
Overrides:
input in class Filter
Parameters:
instance - the input instance
Returns:
true if the filtered instance may now be collected with output().
Throws:
java.lang.IllegalStateException - if no input format has been defined.
java.lang.Exception - if the input instance was not of the correct format or if there was a problem with the filtering.

batchFinished

public boolean batchFinished()
                      throws java.lang.Exception
Signify that this batch of input to the filter is finished. If the filter requires all instances prior to filtering, output() may now be called to retrieve the filtered instances.
Overrides:
batchFinished in class Filter
Returns:
true if there are instances pending output.
Throws:
java.lang.IllegalStateException - if no input structure has been defined.
java.lang.Exception - if there is a problem during the attribute selection.

setOutputFormat

protected void setOutputFormat()
                        throws java.lang.Exception
Set the output format. Takes the currently defined attribute set m_InputFormat and calls setOutputFormat(Instances) appropriately.

convertInstance

protected void convertInstance(Instance instance)
                        throws java.lang.Exception
Convert a single instance over. Selected attributes only are transfered. The converted instance is added to the end of the output queue.
Parameters:
instance - the instance to convert

resetOptions

protected void resetOptions()
set options to their default values

main

public static void main(java.lang.String[] argv)
Main method for testing this class.
Parameters:
argv - should contain arguments to the filter: use -h for help