Package weka.classifiers.bayes.net.search.local

# Class LAGDHillClimber

java.lang.Object
weka.classifiers.bayes.net.search.SearchAlgorithm
weka.classifiers.bayes.net.search.local.LocalScoreSearchAlgorithm
weka.classifiers.bayes.net.search.local.HillClimber
weka.classifiers.bayes.net.search.local.LAGDHillClimber

All Implemented Interfaces:
  `Serializable`, `OptionHandler`, `RevisionHandler`

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: 10154 $
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

  Constructors
  Constructor
  Description
  `LAGDHillClimber()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `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
  `String[]`
  `getOptions()`
  Gets the current settings of the search algorithm.
  `String`
  `getRevision()`
  Returns the revision string.
  `String`
  `globalInfo()`
  This will return a string describing the search algorithm.
  `Enumeration<Option>`
  `listOptions()`
  Returns an enumeration describing the available options.
  `String`
  `nrOfGoodOperationsTipText()`
  `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(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 Details

  - ### LAGDHillClimber

    public LAGDHillClimber()

- ## Method Details

  - ### 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 Enumeration<Option> 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(String[] options) throws 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:
      `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 `HillClimber`
    Returns:
      an array of strings suitable for passing to setOptions

  - ### globalInfo

    public String globalInfo()
    This will return a string describing the search algorithm.
    Overrides:
      `globalInfo` in class `HillClimber`
    Returns:
      The string.

  - ### nrOfLookAheadStepsTipText

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

  - ### nrOfGoodOperationsTipText

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

  - ### getRevision

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