Class 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: 1.7 $
    Author:
    Manuel Neubach
    See Also:
    Serialized Form
    • 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 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.