Overview | Package | Class | Tree | Deprecated | Index | Help | Weka's home
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## weka.attributeSelection
Class GeneticSearch

    java.lang.Object
      weka.attributeSelection.ASSearch
          weka.attributeSelection.GeneticSearch

All Implemented Interfaces:
  java.io.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:
  Serialized Form

Constructor Summary
`GeneticSearch()` Constructor.

Method Summary
`java.lang.String` | `crossoverProbTipText()` Returns the tip text for this property
`double` | `getCrossoverProb()` get the probability of crossover
`int` | `getMaxGenerations()` get the number of generations
`double` | `getMutationProb()` get the probability of mutation
`java.lang.String[]` | `getOptions()` Gets the current settings of ReliefFAttributeEval.
`int` | `getPopulationSize()` get the size of the population
`int` | `getReportFrequency()` get how often repports are generated
`java.lang.String` | `getRevision()` Returns the revision string.
`int` | `getSeed()` get the value of the random number generator's seed
`java.lang.String` | `getStartSet()` Returns a list of attributes (and or attribute ranges) as a String
`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.
`java.lang.String` | `globalInfo()` Returns a string describing this search method
`java.util.Enumeration` | `listOptions()` Returns an enumeration describing the available options.
`java.lang.String` | `maxGenerationsTipText()` Returns the tip text for this property
`java.lang.String` | `mutationProbTipText()` Returns the tip text for this property
`java.lang.String` | `populationSizeTipText()` Returns the tip text for this property
`java.lang.String` | `reportFrequencyTipText()` Returns the tip text for this property
`int[]` | `search(ASEvaluation ASEval, Instances data)` Searches the attribute subset space using a genetic algorithm.
`java.lang.String` | `seedTipText()` Returns the tip text for this property
`void` | `setCrossoverProb(double c)` set the probability of crossover
`void` | `setMaxGenerations(int m)` set the number of generations to evaluate
`void` | `setMutationProb(double m)` set the probability of mutation
`void` | `setOptions(java.lang.String[] options)` Parses a given list of options.
`void` | `setPopulationSize(int p)` set the population size
`void` | `setReportFrequency(int f)` set how often reports are generated
`void` | `setSeed(int s)` set the seed for random number generation
`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

Methods inherited from class weka.attributeSelection.ASSearch
`forName, makeCopies`

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### GeneticSearch

    public GeneticSearch()

  Constructor. Make a new GeneticSearch object

Method Detail

### 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 <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:
    `java.lang.Exception` - if an option is not supported

### getOptions

    public java.lang.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 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)

### seedTipText

    public java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.String toString()

  returns a description of the search

  Overrides:
    `toString` in class `java.lang.Object`
  Returns:
    a description of the search as a String

### search

    public int[] search(ASEvaluation ASEval,
                        Instances data)
                 throws java.lang.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:
    `java.lang.Exception` - if the search can't be completed

### getRevision

    public java.lang.String getRevision()

  Returns the revision string.

  Specified by:
    `getRevision` in interface `RevisionHandler`
  Overrides:
    `getRevision` in class `ASSearch`
  Returns:
    the revision

Overview | Package | Class | Tree | Deprecated | Index | Help | Weka's home
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD