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: 1.7 $
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`
`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 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