Class GeneticSearch

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

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

Performs a search using the simple genetic algorithm described in Goldberg (1989).

For more information see:

David E. Goldberg (1989). Genetic algorithms in search, optimization and machine learning. Addison-Wesley.

BibTeX:

 @book{Goldberg1989,
    author = {David E. Goldberg},
    publisher = {Addison-Wesley},
    title = {Genetic algorithms in search, optimization and machine learning},
    year = {1989},
    ISBN = {0201157675}
 }
 

Valid options are:

 -P <start set>
  Specify a starting set of attributes.
  Eg. 1,3,5-7.If supplied, the starting set becomes
  one member of the initial random
  population.
 -Z <population size>
  Set the size of the population (even number).
  (default = 20).
 -G <number of generations>
  Set the number of generations.
  (default = 20)
 -C <probability of crossover>
  Set the probability of crossover.
  (default = 0.6)
 -M <probability of mutation>
  Set the probability of mutation.
  (default = 0.033)
 -R <report frequency>
  Set frequency of generation reports.
  e.g, setting the value to 5 will 
  report every 5th generation
  (default = number of generations)
 -S <seed>
  Set the random number seed.
  (default = 1)
Version:
$Revision: 6759 $
Author:
Mark Hall (mhall@cs.waikato.ac.nz)
See Also:
  • Constructor Details

    • GeneticSearch

      public GeneticSearch()
      Constructor. Make a new GeneticSearch object
  • Method Details

    • 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 supplied, the starting set becomes
        one member of the initial random
        population.
       -Z <population size>
        Set the size of the population (even number).
        (default = 20).
       -G <number of generations>
        Set the number of generations.
        (default = 20)
       -C <probability of crossover>
        Set the probability of crossover.
        (default = 0.6)
       -M <probability of mutation>
        Set the probability of mutation.
        (default = 0.033)
       -R <report frequency>
        Set frequency of generation reports.
        e.g, setting the value to 5 will 
        report every 5th generation
        (default = number of generations)
       -S <seed>
        Set the random number 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 ReliefFAttributeEval.
      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.
      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)
    • 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 s)
      set the seed for random number generation
      Parameters:
      s - seed value
    • getSeed

      public int getSeed()
      get the value of the random number generator's seed
      Returns:
      the seed for random number generation
    • reportFrequencyTipText

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

      public void setReportFrequency(int f)
      set how often reports are generated
      Parameters:
      f - generate reports every f generations
    • getReportFrequency

      public int getReportFrequency()
      get how often repports are generated
      Returns:
      how often reports are generated
    • mutationProbTipText

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

      public void setMutationProb(double m)
      set the probability of mutation
      Parameters:
      m - the probability for mutation occuring
    • getMutationProb

      public double getMutationProb()
      get the probability of mutation
      Returns:
      the probability of mutation occuring
    • crossoverProbTipText

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

      public void setCrossoverProb(double c)
      set the probability of crossover
      Parameters:
      c - the probability that two population members will exchange genetic material
    • getCrossoverProb

      public double getCrossoverProb()
      get the probability of crossover
      Returns:
      the probability of crossover
    • maxGenerationsTipText

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

      public void setMaxGenerations(int m)
      set the number of generations to evaluate
      Parameters:
      m - the number of generations
    • getMaxGenerations

      public int getMaxGenerations()
      get the number of generations
      Returns:
      the maximum number of generations
    • populationSizeTipText

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

      public void setPopulationSize(int p)
      set the population size
      Parameters:
      p - the size of the population
    • getPopulationSize

      public int getPopulationSize()
      get the size of the population
      Returns:
      the population size
    • 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
    • toString

      public String toString()
      returns 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 using a genetic algorithm.
      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