Class GlobalScoreSearchAlgorithm

java.lang.Object
weka.classifiers.bayes.net.search.SearchAlgorithm
weka.classifiers.bayes.net.search.global.GlobalScoreSearchAlgorithm
All Implemented Interfaces:
Serializable, OptionHandler, RevisionHandler
Direct Known Subclasses:
GeneticSearch, HillClimber, K2, SimulatedAnnealing, TAN

public class GlobalScoreSearchAlgorithm extends SearchAlgorithm
This Bayes Network learning algorithm uses cross validation to estimate classification accuracy.

Valid options are:

 -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: 10154 $
Author:
Remco Bouckaert
See Also:
  • Field Details

    • TAGS_CV_TYPE

      public static final Tag[] TAGS_CV_TYPE
      the score types
  • Constructor Details

    • GlobalScoreSearchAlgorithm

      public GlobalScoreSearchAlgorithm()
  • Method Details

    • calcScore

      public double calcScore(BayesNet bayesNet) throws Exception
      performCV returns the accuracy calculated using cross validation. The dataset used is m_Instances associated with the Bayes Network.
      Parameters:
      bayesNet - : Bayes Network containing structure to evaluate
      Returns:
      accuracy (in interval 0..1) measured using cv.
      Throws:
      Exception - whn m_nCVType is invalided + exceptions passed on by updateClassifier
    • calcScoreWithExtraParent

      public double calcScoreWithExtraParent(int nNode, int nCandidateParent) throws Exception
      Calc Node Score With Added Parent
      Parameters:
      nNode - node for which the score is calculate
      nCandidateParent - candidate parent to add to the existing parent set
      Returns:
      log score
      Throws:
      Exception - if something goes wrong
    • calcScoreWithMissingParent

      public double calcScoreWithMissingParent(int nNode, int nCandidateParent) throws Exception
      Calc Node Score With Parent Deleted
      Parameters:
      nNode - node for which the score is calculate
      nCandidateParent - candidate parent to delete from the existing parent set
      Returns:
      log score
      Throws:
      Exception - if something goes wrong
    • calcScoreWithReversedParent

      public double calcScoreWithReversedParent(int nNode, int nCandidateParent) throws Exception
      Calc Node Score With Arrow reversed
      Parameters:
      nNode - node for which the score is calculate
      nCandidateParent - candidate parent to delete from the existing parent set
      Returns:
      log score
      Throws:
      Exception - if something goes wrong
    • leaveOneOutCV

      public double leaveOneOutCV(BayesNet bayesNet) throws Exception
      LeaveOneOutCV returns the accuracy calculated using Leave One Out cross validation. The dataset used is m_Instances associated with the Bayes Network.
      Parameters:
      bayesNet - : Bayes Network containing structure to evaluate
      Returns:
      accuracy (in interval 0..1) measured using leave one out cv.
      Throws:
      Exception - passed on by updateClassifier
    • cumulativeCV

      public double cumulativeCV(BayesNet bayesNet) throws Exception
      CumulativeCV returns the accuracy calculated using cumulative cross validation. The idea is to run through the data set and try to classify each of the instances based on the previously seen data. The data set used is m_Instances associated with the Bayes Network.
      Parameters:
      bayesNet - : Bayes Network containing structure to evaluate
      Returns:
      accuracy (in interval 0..1) measured using leave one out cv.
      Throws:
      Exception - passed on by updateClassifier
    • kFoldCV

      public double kFoldCV(BayesNet bayesNet, int nNrOfFolds) throws Exception
      kFoldCV uses k-fold cross validation to measure the accuracy of a Bayes network classifier.
      Parameters:
      bayesNet - : Bayes Network containing structure to evaluate
      nNrOfFolds - : the number of folds k to perform k-fold cv
      Returns:
      accuracy (in interval 0..1) measured using leave one out cv.
      Throws:
      Exception - passed on by updateClassifier
    • getUseProb

      public boolean getUseProb()
      Returns:
      use probabilities or not in accuracy estimate
    • setUseProb

      public void setUseProb(boolean useProb)
      Parameters:
      useProb - : use probabilities or not in accuracy estimate
    • setCVType

      public void setCVType(SelectedTag newCVType)
      set cross validation strategy to be used in searching for networks.
      Parameters:
      newCVType - : cross validation strategy
    • getCVType

      public SelectedTag getCVType()
      get cross validation strategy to be used in searching for networks.
      Returns:
      cross validation strategy
    • setMarkovBlanketClassifier

      public void setMarkovBlanketClassifier(boolean bMarkovBlanketClassifier)
      Parameters:
      bMarkovBlanketClassifier -
    • getMarkovBlanketClassifier

      public boolean getMarkovBlanketClassifier()
      Returns:
    • listOptions

      public Enumeration<Option> listOptions()
      Returns an enumeration describing the available options
      Specified by:
      listOptions in interface OptionHandler
      Overrides:
      listOptions in class SearchAlgorithm
      Returns:
      an enumeration of all the available options
    • setOptions

      public void setOptions(String[] options) throws Exception
      Parses a given list of options.

      Valid options are:

       -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 SearchAlgorithm
      Parameters:
      options - the list of options as an array of strings
      Throws:
      Exception - if an option is not supported
    • getOptions

      public String[] getOptions()
      Gets the current settings of the search algorithm.
      Specified by:
      getOptions in interface OptionHandler
      Overrides:
      getOptions in class SearchAlgorithm
      Returns:
      an array of strings suitable for passing to setOptions
    • CVTypeTipText

      public String CVTypeTipText()
      Returns:
      a string to describe the CVType option.
    • useProbTipText

      public String useProbTipText()
      Returns:
      a string to describe the UseProb option.
    • globalInfo

      public String globalInfo()
      This will return a string describing the search algorithm.
      Returns:
      The string.
    • markovBlanketClassifierTipText

      public String markovBlanketClassifierTipText()
      Returns:
      a string to describe the MarkovBlanketClassifier option.
    • getRevision

      public String getRevision()
      Returns the revision string.
      Specified by:
      getRevision in interface RevisionHandler
      Overrides:
      getRevision in class SearchAlgorithm
      Returns:
      the revision