Class GeneticSearch

  • All Implemented Interfaces:
    java.io.Serializable, OptionHandler, RevisionHandler

    public class GeneticSearch
    extends GlobalScoreSearchAlgorithm
    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 [LOO-CV|k-Fold-CV|Cumulative-CV]
      Score type (LOO-CV,k-Fold-CV,Cumulative-CV)
     -Q
      Use probabilistic or 0/1 scoring.
      (default probabilistic scoring)
    Version:
    $Revision: 1.5 $
    Author:
    Remco Bouckaert (rrb@xm.co.nz)
    See Also:
    Serialized Form
    • 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
      • 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 [LOO-CV|k-Fold-CV|Cumulative-CV]
          Score type (LOO-CV,k-Fold-CV,Cumulative-CV)
         -Q
          Use probabilistic or 0/1 scoring.
          (default probabilistic scoring)
        Specified by:
        setOptions in interface OptionHandler
        Overrides:
        setOptions in class GlobalScoreSearchAlgorithm
        Parameters:
        options - the list of options as an array of strings
        Throws:
        java.lang.Exception - if an option is not supported
      • 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 GlobalScoreSearchAlgorithm
        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.