weka.filters.supervised.attribute
Class AttributeSelection

java.lang.Object
  extended byweka.filters.Filter
      extended byweka.filters.supervised.attribute.AttributeSelection
All Implemented Interfaces:
OptionHandler, java.io.Serializable, SupervisedFilter

public class AttributeSelection
extends Filter
implements SupervisedFilter, 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"

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

Field Summary
private  ASEvaluation m_ASEvaluator
          the attribute evaluator to use
private  ASSearch m_ASSearch
          the search method if any
private  java.lang.String[] m_FilterOptions
          holds a copy of the full set of valid options passed to the filter
private  int[] m_SelectedAttributes
          holds the selected attributes
private  AttributeSelection m_trainSelector
          the attribute selection evaluation object
 
Fields inherited from class weka.filters.Filter
m_NewBatch
 
Constructor Summary
AttributeSelection()
          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.
 java.lang.String evaluatorTipText()
          Returns the tip text for this property
 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
 java.lang.String globalInfo()
          Returns a string describing this filter
 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
 java.lang.String searchTipText()
          Returns the tip text for this property
 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, inputFormatPeek, 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
 

Field Detail

m_trainSelector

private AttributeSelection m_trainSelector
the attribute selection evaluation object


m_ASEvaluator

private ASEvaluation m_ASEvaluator
the attribute evaluator to use


m_ASSearch

private ASSearch m_ASSearch
the search method if any


m_FilterOptions

private java.lang.String[] m_FilterOptions
holds a copy of the full set of valid options passed to the filter


m_SelectedAttributes

private int[] m_SelectedAttributes
holds the selected attributes

Constructor Detail

AttributeSelection

public AttributeSelection()
Constructor

Method Detail

globalInfo

public java.lang.String globalInfo()
Returns a string describing this filter

Returns:
a description of the filter suitable for displaying in the explorer/experimenter gui

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

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)
set a string holding the name of a attribute/subset 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)
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.

Throws:
java.lang.Exception

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
Throws:
java.lang.Exception

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