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

    public class GeneticSearch

extends ASSearch
implements StartSetHandler, OptionHandler

Class for performing a genetic based search.

For more information see:

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

Valid options are:

-Z
Sets the size of the population (even number). (default = 20).

-G
Sets the number of generations to perform. (default = 5).

-C
Sets the probability that crossover will occur. (default = .6).

-M
Sets the probability that a feature will be toggled on/off.

-R
Sets how frequently reports will be generated. Eg, setting the value to 5 will generate a report every 5th generation.

(default = number of generations).

-S
Sets the seed for random number generation.

Version:
  $Revision: 5288 $
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
`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
`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`

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:

  -Z
  Sets the size of the population (even number). (default = 20).

  -G
  Sets the number of generations to perform. (default = 5).

  -C
  Sets the probability that crossover will occur. (default = .6).

  -M
  Sets the probability that a feature will be toggled on/off.

  -R
  Sets how frequently reports will be generated. Eg, setting the value to 5 will generate a report every 5th generation.

  (default = number of generations).

  -S
  Sets the seed for random number generation.

  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

### 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:
    `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

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