Overview | Package | Class | Tree | Deprecated | Index | Help | Weka's home
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## weka.classifiers.bayes.net.search.local
Class K2

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

All Implemented Interfaces:
  java.io.Serializable, OptionHandler, RevisionHandler, TechnicalInformationHandler

    public class K2

extends LocalScoreSearchAlgorithm
implements TechnicalInformationHandler

This Bayes Network learning algorithm uses a hill climbing algorithm restricted by an order on the variables.
For more information see:
G.F. Cooper, E. Herskovits (1990). A Bayesian method for constructing Bayesian belief networks from databases.
G. Cooper, E. Herskovits (1992). A Bayesian method for the induction of probabilistic networks from data. Machine Learning. 9(4):309-347.
Works with nominal variables and no missing values only.

BibTeX:

     @proceedings{Cooper1990,
        author = {G.F. Cooper and E. Herskovits},
        booktitle = {Proceedings of the Conference on Uncertainty in AI},
        pages = {86-94},
        title = {A Bayesian method for constructing Bayesian belief networks from databases},
        year = {1990}
     }

     @article{Cooper1992,
        author = {G. Cooper and E. Herskovits},
        journal = {Machine Learning},
        number = {4},
        pages = {309-347},
        title = {A Bayesian method for the induction of probabilistic networks from data},
        volume = {9},
        year = {1992}
     }

Valid options are:

     -N
      Initial structure is empty (instead of Naive Bayes)

     -P <nr of parents>
      Maximum number of parents

     -R
      Random order.
      (default false)

     -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.8 $
Author:
  Remco Bouckaert (rrb@xm.co.nz)
See Also:
  Serialized Form

Field Summary

Fields inherited from class weka.classifiers.bayes.net.search.local.LocalScoreSearchAlgorithm
`TAGS_SCORE_TYPE`

Constructor Summary
`K2()`

Method Summary
`boolean` | `getInitAsNaiveBayes()` Gets whether to init as naive bayes
`int` | `getMaxNrOfParents()` Gets the max number of parents.
`java.lang.String[]` | `getOptions()` Gets the current settings of the search algorithm.
`boolean` | `getRandomOrder()` Get random order flag
`java.lang.String` | `getRevision()` Returns the revision string.
`TechnicalInformation` | `getTechnicalInformation()` Returns an instance of a TechnicalInformation object, containing detailed information about the technical background of this class, e.g., paper reference or book this class is based on.
`java.lang.String` | `globalInfo()` This will return a string describing the search algorithm.
`java.util.Enumeration` | `listOptions()` Returns an enumeration describing the available options.
`java.lang.String` | `randomOrderTipText()`
`void` | `search(BayesNet bayesNet, Instances instances)` search determines the network structure/graph of the network with the K2 algorithm, restricted by its initial structure (which can be an empty graph, or a Naive Bayes graph.
`void` | `setInitAsNaiveBayes(boolean bInitAsNaiveBayes)` Sets whether to init as naive bayes
`void` | `setMaxNrOfParents(int nMaxNrOfParents)` Sets the max number of parents
`void` | `setOptions(java.lang.String[] options)` Parses a given list of options.
`void` | `setRandomOrder(boolean bRandomOrder)` Set random order flag

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

### K2

    public K2()

Method Detail

### getTechnicalInformation

    public TechnicalInformation getTechnicalInformation()

  Returns an instance of a TechnicalInformation object, containing detailed information about the technical background of this class, e.g., paper reference or book this class is based on.

  Specified by:
    `getTechnicalInformation` in interface `TechnicalInformationHandler`
  Returns:
    the technical information about this class

### search

    public void search(BayesNet bayesNet,
                       Instances instances)
                throws java.lang.Exception

  search determines the network structure/graph of the network with the K2 algorithm, restricted by its initial structure (which can be an empty graph, or a Naive Bayes graph.

  Parameters:
    `bayesNet` - the network
    `instances` - the data to work with
  Throws:
    `java.lang.Exception` - if something goes wrong

### setMaxNrOfParents

    public void setMaxNrOfParents(int nMaxNrOfParents)

  Sets the max number of parents

  Parameters:
    `nMaxNrOfParents` - the max number of parents

### getMaxNrOfParents

    public int getMaxNrOfParents()

  Gets the max number of parents.

  Returns:
    the max number of parents

### setInitAsNaiveBayes

    public void setInitAsNaiveBayes(boolean bInitAsNaiveBayes)

  Sets whether to init as naive bayes

  Parameters:
    `bInitAsNaiveBayes` - whether to init as naive bayes

### getInitAsNaiveBayes

    public boolean getInitAsNaiveBayes()

  Gets whether to init as naive bayes

  Returns:
    whether to init as naive bayes

### setRandomOrder

    public void setRandomOrder(boolean bRandomOrder)

  Set random order flag

  Parameters:
    `bRandomOrder` - the random order flag

### getRandomOrder

    public boolean getRandomOrder()

  Get random order flag

  Returns:
    the random order flag

### listOptions

    public java.util.Enumeration listOptions()

  Returns an enumeration describing the available options.

  Specified by:
    `listOptions` in interface `OptionHandler`
  Overrides:
    `listOptions` in class `LocalScoreSearchAlgorithm`
  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:

       -N
        Initial structure is empty (instead of Naive Bayes)

       -P <nr of parents>
        Maximum number of parents

       -R
        Random order.
        (default false)

       -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 `LocalScoreSearchAlgorithm`
  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 `LocalScoreSearchAlgorithm`
  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 `LocalScoreSearchAlgorithm`
  Returns:
    The string.

### randomOrderTipText

    public java.lang.String randomOrderTipText()

  Returns:
    a string to describe the RandomOrder option.

### getRevision

    public java.lang.String getRevision()

  Returns the revision string.

  Specified by:
    `getRevision` in interface `RevisionHandler`
  Overrides:
    `getRevision` in class `LocalScoreSearchAlgorithm`
  Returns:
    the revision

Overview | Package | Class | Tree | Deprecated | Index | Help | Weka's home
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD