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:
    java.io.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: 11247 $
  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 and Description
    `GeneticSearch()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String` | `descendantPopulationSizeTipText()`
    `int` | `getDescendantPopulationSize()`
    `java.lang.String[]` | `getOptions()` Gets the current settings of the search algorithm.
    `int` | `getPopulationSize()`
    `java.lang.String` | `getRevision()` Returns the revision string.
    `int` | `getRuns()`
    `int` | `getSeed()`
    `boolean` | `getUseCrossOver()`
    `boolean` | `getUseMutation()`
    `boolean` | `getUseTournamentSelection()`
    `java.lang.String` | `globalInfo()` This will return a string describing the classifier.
    `java.util.Enumeration<Option>` | `listOptions()` Returns an enumeration describing the available options.
    `java.lang.String` | `populationSizeTipText()`
    `java.lang.String` | `runsTipText()`
    `java.lang.String` | `seedTipText()`
    `void` | `setDescendantPopulationSize(int iDescendantPopulationSize)`
    `void` | `setOptions(java.lang.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)`
    `java.lang.String` | `useCrossOverTipText()`
    `java.lang.String` | `useMutationTipText()`
    `java.lang.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 Detail

    - #### GeneticSearch

          public GeneticSearch()

  - ### Method Detail

    - #### 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 java.util.Enumeration<Option> 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(java.lang.String[] options)
                          throws java.lang.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:
        `java.lang.Exception` - if an option is not supported

    - #### getOptions

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

      This will return a string describing the classifier.
      Overrides:
        `globalInfo` in class `LocalScoreSearchAlgorithm`
      Returns:
        The string.

    - #### runsTipText

          public java.lang.String runsTipText()

      Returns:
        a string to describe the Runs option.

    - #### seedTipText

          public java.lang.String seedTipText()

      Returns:
        a string to describe the Seed option.

    - #### populationSizeTipText

          public java.lang.String populationSizeTipText()

      Returns:
        a string to describe the Population Size option.

    - #### descendantPopulationSizeTipText

          public java.lang.String descendantPopulationSizeTipText()

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

    - #### useMutationTipText

          public java.lang.String useMutationTipText()

      Returns:
        a string to describe the Use Mutation option.

    - #### useCrossOverTipText

          public java.lang.String useCrossOverTipText()

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

    - #### useTournamentSelectionTipText

          public java.lang.String useTournamentSelectionTipText()

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

    - #### getRevision

          public java.lang.String getRevision()

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