weka.classifiers.bayes.net.search.local
Class GeneticSearch

java.lang.Object
  extended by weka.classifiers.bayes.net.search.SearchAlgorithm
      extended by weka.classifiers.bayes.net.search.local.LocalScoreSearchAlgorithm
          extended by 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: 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
GeneticSearch()
           
 
Method Summary
 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 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 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