weka.attributeSelection
Class BestFirst

java.lang.Object
  |
  +--weka.attributeSelection.ASSearch
        |
        +--weka.attributeSelection.BestFirst
All Implemented Interfaces:
OptionHandler, java.io.Serializable, StartSetHandler

public class BestFirst
extends ASSearch
implements OptionHandler, StartSetHandler

Class for performing a best first search.

Valid options are:

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

-D <-1 = backward | 0 = bidirectional | 1 = forward>
Direction of the search. (default = 1).

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

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

Inner Class Summary
 class BestFirst.Link2
          Class for a node in a linked list.
 class BestFirst.LinkedList2
          Class for handling a linked list.
 
Field Summary
static Tag[] TAGS_SELECTION
           
 
Constructor Summary
BestFirst()
          Constructor
 
Method Summary
 java.lang.String directionTipText()
          Returns the tip text for this property
 SelectedTag getDirection()
          Get the search direction
 java.lang.String[] getOptions()
          Gets the current settings of BestFirst.
 int getSearchTermination()
          Get the termination criterion (number of non-improving nodes).
 java.lang.String getStartSet()
          Returns a list of attributes (and or attribute ranges) as a String
 java.lang.String globalInfo()
          Returns a string describing this search method
 java.util.Enumeration listOptions()
          Returns an enumeration describing the available options
protected  void resetOptions()
          Reset options to default values
 int[] search(ASEvaluation ASEval, Instances data)
          Searches the attribute subset space by best first search
 java.lang.String searchTerminationTipText()
          Returns the tip text for this property
 void setDirection(SelectedTag d)
          Set the search direction
 void setOptions(java.lang.String[] options)
          Parses a given list of options.
 void setSearchTermination(int t)
          Set the numnber of non-improving nodes to consider before terminating search.
 void setStartSet(java.lang.String startSet)
          Sets a starting set of attributes for the search.
 java.lang.String startSetTipText()
          Returns the tip text for this property
 java.lang.String toString()
          returns a description of the search as a String
 
Methods inherited from class weka.attributeSelection.ASSearch
forName
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

TAGS_SELECTION

public static final Tag[] TAGS_SELECTION
Constructor Detail

BestFirst

public BestFirst()
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 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:

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

-D <-1 = backward | 0 = bidirectional | 1 = forward>
Direction of the search. (default = 1).

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

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

startSetTipText

public java.lang.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(java.lang.String startSet)
                 throws java.lang.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:
java.lang.Exception - if start set can't be set.

getStartSet

public java.lang.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 java.lang.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 java.lang.Exception
Set the numnber of non-improving nodes to consider before terminating search.
Parameters:
t - the number of non-improving nodes
Throws:
java.lang.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

directionTipText

public java.lang.String directionTipText()
Returns the tip text for this property
Returns:
tip text for this property suitable for displaying in the explorer/experimenter gui

setDirection

public void setDirection(SelectedTag d)
Set the search direction
Parameters:
d - the direction of the search

getDirection

public SelectedTag getDirection()
Get the search direction
Returns:
the direction of the search

getOptions

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

toString

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

search

public int[] search(ASEvaluation ASEval,
                    Instances data)
             throws java.lang.Exception
Searches the attribute subset space by best first search
Overrides:
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:
java.lang.Exception - if the search can't be completed

resetOptions

protected void resetOptions()
Reset options to default values