Class 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: 11247 $
Author:
Remco Bouckaert (rrb@xm.co.nz)
See Also:
  • 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<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(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