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

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
              extended by weka.classifiers.bayes.net.search.global.TabuSearch
All Implemented Interfaces:
java.io.Serializable, OptionHandler, RevisionHandler, TechnicalInformationHandler

public class TabuSearch
extends HillClimber
implements TechnicalInformationHandler

This Bayes Network learning algorithm uses tabu search for finding a well scoring Bayes network structure. Tabu search is hill climbing till an optimum is reached. The following step is the least worst possible step. The last X steps are kept in a list and none of the steps in this so called tabu list is considered in taking the next step. The best network found in this traversal is returned.

For more information see:

R.R. Bouckaert (1995). Bayesian Belief Networks: from Construction to Inference. Utrecht, Netherlands.

BibTeX:

 @phdthesis{Bouckaert1995,
    address = {Utrecht, Netherlands},
    author = {R.R. Bouckaert},
    institution = {University of Utrecht},
    title = {Bayesian Belief Networks: from Construction to Inference},
    year = {1995}
 }
 

Valid options are:

 -L <integer>
  Tabu list length
 -U <integer>
  Number of runs
 -P <nr of parents>
  Maximum number of parents
 -R
  Use arc reversal operation.
  (default false)
 -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.5 $
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
TabuSearch()
           
 
Method Summary
 java.lang.String[] getOptions()
          Gets the current settings of the search algorithm.
 java.lang.String getRevision()
          Returns the revision string.
 int getRuns()
           
 int getTabuList()
           
 TechnicalInformation getTechnicalInformation()
          Returns an instance of a TechnicalInformation object, containing detailed information about the technical background of this class, e.g., paper reference or book this class is based on.
 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 runsTipText()
           
 void setOptions(java.lang.String[] options)
          Parses a given list of options.
 void setRuns(int nRuns)
          Sets the number of runs
 void setTabuList(int nTabuList)
          Sets the Tabu List length.
 java.lang.String tabuListTipText()
           
 
Methods inherited from class weka.classifiers.bayes.net.search.global.HillClimber
getInitAsNaiveBayes, getMaxNrOfParents, getUseArcReversal, setInitAsNaiveBayes, setMaxNrOfParents, setUseArcReversal, 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

TabuSearch

public TabuSearch()
Method Detail

getTechnicalInformation

public TechnicalInformation getTechnicalInformation()
Returns an instance of a TechnicalInformation object, containing detailed information about the technical background of this class, e.g., paper reference or book this class is based on.

Specified by:
getTechnicalInformation in interface TechnicalInformationHandler
Returns:
the technical information about this class

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

getTabuList

public int getTabuList()
Returns:
the Tabu List length

setTabuList

public void setTabuList(int nTabuList)
Sets the Tabu List length.

Parameters:
nTabuList - The nTabuList 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 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:

 -L <integer>
  Tabu list length
 -U <integer>
  Number of runs
 -P <nr of parents>
  Maximum number of parents
 -R
  Use arc reversal operation.
  (default false)
 -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 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 classifier.

Overrides:
globalInfo in class HillClimber
Returns:
The string.

runsTipText

public java.lang.String runsTipText()
Returns:
a string to describe the Runs option.

tabuListTipText

public java.lang.String tabuListTipText()
Returns:
a string to describe the TabuList option.

getRevision

public java.lang.String getRevision()
Returns the revision string.

Specified by:
getRevision in interface RevisionHandler
Overrides:
getRevision in class HillClimber
Returns:
the revision