Class RandomSearch

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

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

Performs a Random search in the space of attribute subsets. If no start set is supplied, Random search starts from a random point and reports the best subset found. If a start set is supplied, Random searches randomly for subsets that are as good or better than the start point with the same or or fewer attributes. Using RandomSearch in conjunction with a start set containing all attributes equates to the LVF algorithm of Liu and Setiono (ICML-96).

For more information see:

H. Liu, R. Setiono: A probabilistic approach to feature selection - A filter solution. In: 13th International Conference on Machine Learning, 319-327, 1996.

BibTeX:

 @inproceedings{Liu1996,
    author = {H. Liu and R. Setiono},
    booktitle = {13th International Conference on Machine Learning},
    pages = {319-327},
    title = {A probabilistic approach to feature selection - A filter solution},
    year = {1996}
 }
 

Valid options are:

 -P <start set>
  Specify a starting set of attributes.
  Eg. 1,3,5-7.
  If a start point is supplied,
  random search evaluates the start
  point and then randomly looks for
  subsets that are as good as or better
  than the start point with the same
  or lower cardinality.
 -F <percent> 
  Percent of search space to consider.
  (default = 25%).
 -V
  Output subsets as the search progresses.
  (default = false).
 -seed <num>
  Random seed
  (default = 1)
Version:
$Revision: 8949 $
Author:
Mark Hall (mhall@cs.waikato.ac.nz)
See Also:
  • Constructor Details

    • RandomSearch

      public RandomSearch()
      Constructor
  • Method Details

    • globalInfo

      public String globalInfo()
      Returns a string describing this search method
      Returns:
      a description of the search 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 <start set>
        Specify a starting set of attributes.
        Eg. 1,3,5-7.
        If a start point is supplied,
        random search evaluates the start
        point and then randomly looks for
        subsets that are as good as or better
        than the start point with the same
        or lower cardinality.
       -F <percent> 
        Percent of search space to consider.
        (default = 25%).
       -V
        Output subsets as the search progresses.
        (default = false).
       -seed <num>
        Random seed
        (default = 1)
      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
    • getOptions

      public String[] getOptions()
      Gets the current settings of RandomSearch.
      Specified by:
      getOptions in interface OptionHandler
      Returns:
      an array of strings suitable for passing to setOptions()
    • 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. "" indicates no start point. If a start point is supplied, random search evaluates the start point and then looks for subsets that are as good as or better than the start point with the same or lower cardinality.
      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)
    • 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 v)
      set whether or not to output new best subsets as the search proceeds
      Parameters:
      v - true if output is to be verbose
    • getVerbose

      public boolean getVerbose()
      get whether or not output is verbose
      Returns:
      true if output is set to verbose
    • searchPercentTipText

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

      public void setSearchPercent(double p)
      set the percentage of the search space to consider
      Parameters:
      p - percent of the search space ( 0 < p <= 100)
    • seedTipText

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

      public void setSeed(int seed)
      Set the random seed to use
      Parameters:
      seed - the seed to use
    • getSeed

      public int getSeed()
      Get the random seed to use
      Returns:
      the random seed
    • getSearchPercent

      public double getSearchPercent()
      get the percentage of the search space to consider
      Returns:
      the percent of the search space explored
    • toString

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

      public int[] search(ASEvaluation ASEval, Instances data) throws Exception
      Searches the attribute subset space randomly.
      Specified by:
      search in class ASSearch
      Parameters:
      ASEval - 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