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:
    java.io.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 and Description
    `LAGDHillClimber()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and 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
    `java.lang.String[]` | `getOptions()` Gets the current settings of the search algorithm.
    `java.lang.String` | `getRevision()` Returns the revision string.
    `java.lang.String` | `globalInfo()` This will return a string describing the search algorithm.
    `java.util.Enumeration<Option>` | `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<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(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.

    - #### getRevision

          public java.lang.String getRevision()

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