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

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.HillClimber
              extended by weka.classifiers.bayes.net.search.local.LAGDHillClimber
All Implemented Interfaces:
java.io.Serializable, OptionHandler

public class LAGDHillClimber
extends HillClimber

This Bayes Network learning algorithm uses a Look Ahead Hill Climbing algorithm called LAGD Hill Climbing. Unlike Greedy Hill Climbing it doesn't calculate a best greedy operation (adding, deleting or reversing an arc) but a sequence of nrOfLookAheadSteps operations, which leads to a network structure whose score is most likely higher in comparison to the network obtained by performing a sequence of nrOfLookAheadSteps greedy operations. The search is not restricted by an order on the variables (unlike K2). The difference with B and B2 is that this hill climber also considers arrows part of the naive Bayes structure for deletion.

Valid options are:

 -L <nr of look ahead steps>
  Look Ahead Depth
 -G <nr of good operations>
  Nr of Good Operations
 -P <nr of parents>
  Maximum number of parents
 -R
  Use arc reversal operation.
  (default false)
 -N
  Initial structure is empty (instead of Naive Bayes)
 -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.6 $
Author:
Manuel Neubach
See Also:
Serialized Form

Field Summary
 
Fields inherited from class weka.classifiers.bayes.net.search.local.LocalScoreSearchAlgorithm
TAGS_SCORE_TYPE
 
Constructor Summary
LAGDHillClimber()
           
 
Method Summary
 int getMaxNrOfParents()
          Gets the max number of parents.
 int getNrOfGoodOperations()
          Gets the number of "good operations"
 int getNrOfLookAheadSteps()
          Gets the number of look-ahead steps
 java.lang.String[] getOptions()
          Gets the current settings of the search algorithm.
 java.lang.String globalInfo()
          This will return a string describing the search algorithm.
 java.util.Enumeration listOptions()
          Returns an enumeration describing the available options.
 java.lang.String nrOfGoodOperationsTipText()
           
 java.lang.String nrOfLookAheadStepsTipText()
           
 void setMaxNrOfParents(int nMaxNrOfParents)
          Sets the max number of parents
 void setNrOfGoodOperations(int nNrOfGoodOperations)
          Sets the number of "good operations"
 void setNrOfLookAheadSteps(int nNrOfLookAheadSteps)
          Sets the number of look-ahead steps
 void setOptions(java.lang.String[] options)
          Parses a given list of options.
 
Methods inherited from class weka.classifiers.bayes.net.search.local.HillClimber
getInitAsNaiveBayes, getUseArcReversal, setInitAsNaiveBayes, setUseArcReversal, useArcReversalTipText
 
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

LAGDHillClimber

public LAGDHillClimber()
Method Detail

setMaxNrOfParents

public void setMaxNrOfParents(int nMaxNrOfParents)
Sets the max number of parents

Overrides:
setMaxNrOfParents in class HillClimber
Parameters:
nMaxNrOfParents - the max number of parents

getMaxNrOfParents

public int getMaxNrOfParents()
Gets the max number of parents.

Overrides:
getMaxNrOfParents in class HillClimber
Returns:
the max number of parents

setNrOfLookAheadSteps

public void setNrOfLookAheadSteps(int nNrOfLookAheadSteps)
Sets the number of look-ahead steps

Parameters:
nNrOfLookAheadSteps - the number of look-ahead steps

getNrOfLookAheadSteps

public int getNrOfLookAheadSteps()
Gets the number of look-ahead steps

Returns:
the number of look-ahead step

setNrOfGoodOperations

public void setNrOfGoodOperations(int nNrOfGoodOperations)
Sets the number of "good operations"

Parameters:
nNrOfGoodOperations - the number of "good operations"

getNrOfGoodOperations

public int getNrOfGoodOperations()
Gets the number of "good operations"

Returns:
the number of "good operations"

listOptions

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

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

Valid options are:

 -L <nr of look ahead steps>
  Look Ahead Depth
 -G <nr of good operations>
  Nr of Good Operations
 -P <nr of parents>
  Maximum number of parents
 -R
  Use arc reversal operation.
  (default false)
 -N
  Initial structure is empty (instead of Naive Bayes)
 -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 HillClimber
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 HillClimber
Returns:
an array of strings suitable for passing to setOptions

globalInfo

public java.lang.String globalInfo()
This will return a string describing the search algorithm.

Overrides:
globalInfo in class HillClimber
Returns:
The string.

nrOfLookAheadStepsTipText

public java.lang.String nrOfLookAheadStepsTipText()
Returns:
a string to describe the Number of Look Ahead Steps option.

nrOfGoodOperationsTipText

public java.lang.String nrOfGoodOperationsTipText()
Returns:
a string to describe the Number of Good Operations option.