Class LinearForwardSelection

java.lang.Object
weka.attributeSelection.ASSearch
weka.attributeSelection.LinearForwardSelection
All Implemented Interfaces:
Serializable, StartSetHandler, OptionHandler, RevisionHandler, TechnicalInformationHandler

public class LinearForwardSelection extends ASSearch implements OptionHandler, StartSetHandler, TechnicalInformationHandler
LinearForwardSelection:

Extension of BestFirst. Takes a restricted number of k attributes into account. Fixed-set selects a fixed number k of attributes, whereas k is increased in each step when fixed-width is selected. The search uses either the initial ordering to select the top k attributes, or performs a ranking (with the same evalutator the search uses later on). The search direction can be forward, or floating forward selection (with opitional backward search steps).

For more information see:

Martin Guetlein (2006). Large Scale Attribute Selection Using Wrappers. Freiburg, Germany.

Valid options are:

 -P <start set>
  Specify a starting set of attributes.
  Eg. 1,3,5-7.
 -D <0 = forward selection | 1 = floating forward selection>
  Forward selection method. (default = 0).
 -N <num>
  Number of non-improving nodes to
  consider before terminating search.
 -I
  Perform initial ranking to select the
  top-ranked attributes.
 -K <num>
  Number of top-ranked attributes that are 
  taken into account by the search.
 -T <0 = fixed-set | 1 = fixed-width>
  Type of Linear Forward Selection (default = 0).
 -S <num>
  Size of lookup cache for evaluated subsets.
  Expressed as a multiple of the number of
  attributes in the data set. (default = 1)
 -Z
  verbose on/off
Version:
$Revision: 6161 $
Author:
Martin Guetlein (martin.guetlein@gmail.com)
See Also:
  • Field Details

    • TAGS_SEARCH_METHOD

      public static final Tag[] TAGS_SEARCH_METHOD
    • TAGS_TYPE

      public static final Tag[] TAGS_TYPE
  • Constructor Details

    • LinearForwardSelection

      public LinearForwardSelection()
      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
    • getTechnicalInformation

      public TechnicalInformation getTechnicalInformation()
      Returns an instance of a TechnicalInformation object, containing detailed information about the technical background of this class, e.g., paper reference or book this class is based on.
      Specified by:
      getTechnicalInformation in interface TechnicalInformationHandler
      Returns:
      the technical information about this class
    • listOptions

      public 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(String[] options) throws Exception
      Parses a given list of options. Valid options are:

      -P
      Specify a starting set of attributes. Eg 1,4,7-9.

      -D <0 = forward selection | 1 = floating forward selection>
      Forward selection method of the search. (default = 0).

      -N
      Number of non improving nodes to consider before terminating search. (default = 5).

      -I
      Perform initial ranking to select top-ranked attributes.

      -K
      Number of top-ranked attributes that are taken into account.

      -T <0 = fixed-set | 1 = fixed-width>
      Typ of Linear Forward Selection (default = 0).

      -S
      Size of lookup cache for evaluated subsets. Expressed as a multiple of the number of attributes in the data set. (default = 1).

      -Z
      verbose on/off.

      Specified by:
      setOptions in interface OptionHandler
      Parameters:
      options - the list of options as an array of strings
      Throws:
      Exception - if an option is not supported
    • setLookupCacheSize

      public void setLookupCacheSize(int size)
      Set the maximum size of the evaluated subset cache (hashtable). This is expressed as a multiplier for the number of attributes in the data set. (default = 1).
      Parameters:
      size - the maximum size of the hashtable
    • getLookupCacheSize

      public int getLookupCacheSize()
      Return the maximum size of the evaluated subset cache (expressed as a multiplier for the number of attributes in a data set.
      Returns:
      the maximum size of the hashtable.
    • lookupCacheSizeTipText

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

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

      public void setStartSet(String startSet) throws Exception
      Sets a starting set of attributes for the search. It is the search method's responsibility to report this start set (if any) in its toString() method.
      Specified by:
      setStartSet in interface StartSetHandler
      Parameters:
      startSet - a string containing a list of attributes (and or ranges), eg. 1,2,6,10-15.
      Throws:
      Exception - if start set can't be set.
    • getStartSet

      public String getStartSet()
      Returns a list of attributes (and or attribute ranges) as a String
      Specified by:
      getStartSet in interface StartSetHandler
      Returns:
      a list of attributes (and or attribute ranges)
    • searchTerminationTipText

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

      public void setSearchTermination(int t) throws Exception
      Set the numnber of non-improving nodes to consider before terminating search.
      Parameters:
      t - the number of non-improving nodes
      Throws:
      Exception - if t is less than 1
    • getSearchTermination

      public int getSearchTermination()
      Get the termination criterion (number of non-improving nodes).
      Returns:
      the number of non-improving nodes
    • performRankingTipText

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

      public void setPerformRanking(boolean b)
      Perform initial ranking to select top-ranked attributes.
      Parameters:
      b - true if initial ranking should be performed
    • getPerformRanking

      public boolean getPerformRanking()
      Get boolean if initial ranking should be performed to select the top-ranked attributes
      Returns:
      true if initial ranking should be performed
    • numUsedAttributesTipText

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

      public void setNumUsedAttributes(int k) throws Exception
      Set the number of top-ranked attributes that taken into account by the search process.
      Parameters:
      k - the number of attributes
      Throws:
      Exception - if k is less than 2
    • getNumUsedAttributes

      public int getNumUsedAttributes()
      Get the number of top-ranked attributes that taken into account by the search process.
      Returns:
      the number of top-ranked attributes that taken into account
    • forwardSelectionMethodTipText

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

      public void setForwardSelectionMethod(SelectedTag d)
      Set the search direction
      Parameters:
      d - the direction of the search
    • getForwardSelectionMethod

      public SelectedTag getForwardSelectionMethod()
      Get the search direction
      Returns:
      the direction of the search
    • typeTipText

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

      public void setType(SelectedTag t)
      Set the type
      Parameters:
      t - the Linear Forward Selection type
    • getType

      public SelectedTag getType()
      Get the type
      Returns:
      the Linear Forward Selection type
    • verboseTipText

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

      public void setVerbose(boolean b)
      Set whether verbose output should be generated.
      Parameters:
      d - true if output is to be verbose.
    • getVerbose

      public boolean getVerbose()
      Get whether output is to be verbose
      Returns:
      true if output will be verbose
    • getOptions

      public String[] getOptions()
      Gets the current settings of LinearForwardSelection.
      Specified by:
      getOptions in interface OptionHandler
      Returns:
      an array of strings suitable for passing to setOptions()
    • toString

      public String toString()
      returns a description of the search as a String
      Overrides:
      toString in class Object
      Returns:
      a description of the search
    • search

      public int[] search(ASEvaluation ASEval, Instances data) throws Exception
      Searches the attribute subset space by linear forward selection
      Specified by:
      search in class ASSearch
      Parameters:
      ASEvaluator - the attribute evaluator to guide the search
      data - the training instances.
      Returns:
      an array (not necessarily ordered) of selected attribute indexes
      Throws:
      Exception - if the search can't be completed
    • getRevision

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