Package weka.classifiers.bayes.net.search.local

# Class GeneticSearch

java.lang.Object
weka.classifiers.bayes.net.search.SearchAlgorithm
weka.classifiers.bayes.net.search.local.LocalScoreSearchAlgorithm
weka.classifiers.bayes.net.search.local.GeneticSearch

All Implemented Interfaces:
  `Serializable`, `OptionHandler`, `RevisionHandler`

public class GeneticSearch extends LocalScoreSearchAlgorithm
This Bayes Network learning algorithm uses genetic search for finding a well scoring Bayes network structure. Genetic search works by having a population of Bayes network structures and allow them to mutate and apply cross over to get offspring. The best network structure found during the process is returned.

Valid options are:

     -L <integer>
      Population size

     -A <integer>
      Descendant population size

     -U <integer>
      Number of runs

     -M
      Use mutation.
      (default true)

     -C
      Use cross-over.
      (default true)

     -O
      Use tournament selection (true) or maximum subpopulatin (false).
      (default false)

     -R <seed>
      Random number seed

     -mbc
      Applies a Markov Blanket correction to the network structure,
      after a network structure is learned. This ensures that all
      nodes in the network are part of the Markov blanket of the
      classifier node.

     -S [BAYES|MDL|ENTROPY|AIC|CROSS_CLASSIC|CROSS_BAYES]
      Score type (BAYES, BDeu, MDL, ENTROPY and AIC)

Version:
  $Revision: 1.5 $
Author:
  Remco Bouckaert (rrb@xm.co.nz)
See Also:
  - Serialized Form

## Field Summary

### Fields inherited from class weka.classifiers.bayes.net.search.local.LocalScoreSearchAlgorithm

`TAGS_SCORE_TYPE`

## Constructor Summary

Constructors
Constructor
Description
`GeneticSearch()`

## Method Summary

Modifier and Type
Method
Description
`String`
`descendantPopulationSizeTipText()`
`int`
`getDescendantPopulationSize()`
`String[]`
`getOptions()`
Gets the current settings of the search algorithm.
`int`
`getPopulationSize()`
`String`
`getRevision()`
Returns the revision string.
`int`
`getRuns()`
`int`
`getSeed()`
`boolean`
`getUseCrossOver()`
`boolean`
`getUseMutation()`
`boolean`
`getUseTournamentSelection()`
`String`
`globalInfo()`
This will return a string describing the classifier.
`Enumeration`
`listOptions()`
Returns an enumeration describing the available options.
`String`
`populationSizeTipText()`
`String`
`runsTipText()`
`String`
`seedTipText()`
`void`
`setDescendantPopulationSize(int iDescendantPopulationSize)`
`void`
`setOptions(String[] options)`
Parses a given list of options.
`void`
`setPopulationSize(int iPopulationSize)`
`void`
`setRuns(int nRuns)`
Sets the number of runs
`void`
`setSeed(int nSeed)`
Sets the random number seed
`void`
`setUseCrossOver(boolean bUseCrossOver)`
`void`
`setUseMutation(boolean bUseMutation)`
`void`
`setUseTournamentSelection(boolean bUseTournamentSelection)`
`String`
`useCrossOverTipText()`
`String`
`useMutationTipText()`
`String`
`useTournamentSelectionTipText()`

### Methods inherited from class weka.classifiers.bayes.net.search.local.LocalScoreSearchAlgorithm

`buildStructure, calcNodeScore, calcScoreWithExtraParent, calcScoreWithMissingParent, getMarkovBlanketClassifier, getScoreType, logScore, markovBlanketClassifierTipText, scoreTypeTipText, setMarkovBlanketClassifier, setScoreType`

### Methods inherited from class weka.classifiers.bayes.net.search.SearchAlgorithm

`initAsNaiveBayesTipText, maxNrOfParentsTipText, toString`

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Constructor Details

### GeneticSearch

public GeneticSearch()

## Method Details

### getRuns

public int getRuns()

Returns:
  number of runs

### setRuns

public void setRuns(int nRuns)
Sets the number of runs

Parameters:
  `nRuns` - The number of runs to set

### listOptions

public Enumeration listOptions()
Returns an enumeration describing the available options.

Specified by:
  `listOptions` in interface `OptionHandler`
Overrides:
  `listOptions` in class `LocalScoreSearchAlgorithm`
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:

     -L <integer>
      Population size

     -A <integer>
      Descendant population size

     -U <integer>
      Number of runs

     -M
      Use mutation.
      (default true)

     -C
      Use cross-over.
      (default true)

     -O
      Use tournament selection (true) or maximum subpopulatin (false).
      (default false)

     -R <seed>
      Random number seed

     -mbc
      Applies a Markov Blanket correction to the network structure,
      after a network structure is learned. This ensures that all
      nodes in the network are part of the Markov blanket of the
      classifier node.

     -S [BAYES|MDL|ENTROPY|AIC|CROSS_CLASSIC|CROSS_BAYES]
      Score type (BAYES, BDeu, MDL, ENTROPY and AIC)

Specified by:
  `setOptions` in interface `OptionHandler`
Overrides:
  `setOptions` in class `LocalScoreSearchAlgorithm`
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 the search algorithm.

Specified by:
  `getOptions` in interface `OptionHandler`
Overrides:
  `getOptions` in class `LocalScoreSearchAlgorithm`
Returns:
  an array of strings suitable for passing to setOptions

### getUseCrossOver

public boolean getUseCrossOver()

Returns:
  whether cross-over is used

### getUseMutation

public boolean getUseMutation()

Returns:
  whether mutation is used

### getDescendantPopulationSize

public int getDescendantPopulationSize()

Returns:
  descendant population size

### getPopulationSize

public int getPopulationSize()

Returns:
  population size

### setUseCrossOver

public void setUseCrossOver(boolean bUseCrossOver)

Parameters:
  `bUseCrossOver` - sets whether cross-over is used

### setUseMutation

public void setUseMutation(boolean bUseMutation)

Parameters:
  `bUseMutation` - sets whether mutation is used

### getUseTournamentSelection

public boolean getUseTournamentSelection()

Returns:
  whether Tournament Selection (true) or Maximum Sub-Population (false) should be used

### setUseTournamentSelection

public void setUseTournamentSelection(boolean bUseTournamentSelection)

Parameters:
  `bUseTournamentSelection` - sets whether Tournament Selection or Maximum Sub-Population should be used

### setDescendantPopulationSize

public void setDescendantPopulationSize(int iDescendantPopulationSize)

Parameters:
  `iDescendantPopulationSize` - sets descendant population size

### setPopulationSize

public void setPopulationSize(int iPopulationSize)

Parameters:
  `iPopulationSize` - sets population size

### getSeed

public int getSeed()

Returns:
  random number seed

### setSeed

public void setSeed(int nSeed)
Sets the random number seed

Parameters:
  `nSeed` - The number of the seed to set

### globalInfo

public String globalInfo()
This will return a string describing the classifier.

Overrides:
  `globalInfo` in class `LocalScoreSearchAlgorithm`
Returns:
  The string.

### runsTipText

public String runsTipText()

Returns:
  a string to describe the Runs option.

### seedTipText

public String seedTipText()

Returns:
  a string to describe the Seed option.

### populationSizeTipText

public String populationSizeTipText()

Returns:
  a string to describe the Population Size option.

### descendantPopulationSizeTipText

public String descendantPopulationSizeTipText()

Returns:
  a string to describe the Descendant Population Size option.

### useMutationTipText

public String useMutationTipText()

Returns:
  a string to describe the Use Mutation option.

### useCrossOverTipText

public String useCrossOverTipText()

Returns:
  a string to describe the Use Cross-Over option.

### useTournamentSelectionTipText

public String useTournamentSelectionTipText()

Returns:
  a string to describe the Use Tournament Selection option.

### getRevision

public String getRevision()
Returns the revision string.

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