weka.classifiers.bayes.net.search.global
Class HillClimber

java.lang.Object
  extended by weka.classifiers.bayes.net.search.SearchAlgorithm
      extended by weka.classifiers.bayes.net.search.global.GlobalScoreSearchAlgorithm
          extended by weka.classifiers.bayes.net.search.global.HillClimber
All Implemented Interfaces:
java.io.Serializable, OptionHandler
Direct Known Subclasses:
RepeatedHillClimber, TabuSearch

public class HillClimber
extends GlobalScoreSearchAlgorithm

This Bayes Network learning algorithm uses a hill climbing algorithm adding, deleting and reversing arcs. 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:

 -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 [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.8 $
Author:
Remco Bouckaert (rrb@xm.co.nz)
See Also:
Serialized Form

Field Summary
 
Fields inherited from class weka.classifiers.bayes.net.search.global.GlobalScoreSearchAlgorithm
TAGS_CV_TYPE
 
Constructor Summary
HillClimber()
           
 
Method Summary
 boolean getInitAsNaiveBayes()
          Gets whether to init as naive bayes
 int getMaxNrOfParents()
          Gets the max number of parents.
 java.lang.String[] getOptions()
          Gets the current settings of the search algorithm.
 boolean getUseArcReversal()
          get use the arc reversal operation
 java.lang.String globalInfo()
          This will return a string describing the search algorithm.
 java.util.Enumeration listOptions()
          Returns an enumeration describing the available options.
 void setInitAsNaiveBayes(boolean bInitAsNaiveBayes)
          Sets whether to init as naive bayes
 void setMaxNrOfParents(int nMaxNrOfParents)
          Sets the max number of parents
 void setOptions(java.lang.String[] options)
          Parses a given list of options.
 void setUseArcReversal(boolean bUseArcReversal)
          set use the arc reversal operation
 java.lang.String useArcReversalTipText()
           
 
Methods inherited from class weka.classifiers.bayes.net.search.global.GlobalScoreSearchAlgorithm
calcScore, calcScoreWithExtraParent, calcScoreWithMissingParent, calcScoreWithReversedParent, cumulativeCV, CVTypeTipText, getCVType, getMarkovBlanketClassifier, getUseProb, kFoldCV, leaveOneOutCV, markovBlanketClassifierTipText, setCVType, setMarkovBlanketClassifier, setUseProb, useProbTipText
 
Methods inherited from class weka.classifiers.bayes.net.search.SearchAlgorithm
buildStructure, initAsNaiveBayesTipText, maxNrOfParentsTipText, toString
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

HillClimber

public HillClimber()
Method Detail

setMaxNrOfParents

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

Parameters:
nMaxNrOfParents - the max number of parents

getMaxNrOfParents

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

Returns:
the max number of parents

listOptions

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

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

 -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 [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

getOptions

public java.lang.String[] getOptions()
Gets the current settings of the search algorithm.

Specified by:
getOptions in interface OptionHandler
Overrides:
getOptions in class GlobalScoreSearchAlgorithm
Returns:
an array of strings suitable for passing to setOptions

setInitAsNaiveBayes

public void setInitAsNaiveBayes(boolean bInitAsNaiveBayes)
Sets whether to init as naive bayes

Parameters:
bInitAsNaiveBayes - whether to init as naive bayes

getInitAsNaiveBayes

public boolean getInitAsNaiveBayes()
Gets whether to init as naive bayes

Returns:
whether to init as naive bayes

getUseArcReversal

public boolean getUseArcReversal()
get use the arc reversal operation

Returns:
whether the arc reversal operation should be used

setUseArcReversal

public void setUseArcReversal(boolean bUseArcReversal)
set use the arc reversal operation

Parameters:
bUseArcReversal - whether the arc reversal operation should be used

globalInfo

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

Overrides:
globalInfo in class GlobalScoreSearchAlgorithm
Returns:
The string.

useArcReversalTipText

public java.lang.String useArcReversalTipText()
Returns:
a string to describe the Use Arc Reversal option.