Package weka.classifiers.bayes.net.search.global

# Class K2

java.lang.Object
weka.classifiers.bayes.net.search.SearchAlgorithm
weka.classifiers.bayes.net.search.global.GlobalScoreSearchAlgorithm
weka.classifiers.bayes.net.search.global.K2

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

public class K2 extends GlobalScoreSearchAlgorithm 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 [LOO-CV|k-Fold-CV|Cumulative-CV]
      Score type (LOO-CV,k-Fold-CV,Cumulative-CV)

     -Q
      Use probabilistic or 0/1 scoring.
      (default probabilistic scoring)

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.global.GlobalScoreSearchAlgorithm

`TAGS_CV_TYPE`

## Constructor Summary

Constructors
Constructor
Description
`K2()`

## Method Summary

Modifier and Type
Method
Description
`boolean`
`getInitAsNaiveBayes()`
Gets whether to init as naive bayes
`int`
`getMaxNrOfParents()`
Gets the max number of parents.
`String[]`
`getOptions()`
Gets the current settings of the search algorithm.
`boolean`
`getRandomOrder()`
Get random order flag
`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.
`String`
`globalInfo()`
This will return a string describing the search algorithm.
`Enumeration`
`listOptions()`
Returns an enumeration describing the available options.
`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(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.global.GlobalScoreSearchAlgorithm

`calcScore, calcScoreWithExtraParent, calcScoreWithMissingParent, calcScoreWithReversedParent, cumulativeCV, CVTypeTipText, getCVType, getMarkovBlanketClassifier, getUseProb, kFoldCV, leaveOneOutCV, markovBlanketClassifierTipText, setCVType, setMarkovBlanketClassifier, setUseProb, useProbTipText`

### Methods inherited from class weka.classifiers.bayes.net.search.SearchAlgorithm

`buildStructure, initAsNaiveBayesTipText, maxNrOfParentsTipText, toString`

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Constructor Details

### K2

public K2()

## Method Details

### 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 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:
  `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 Enumeration listOptions()
Returns an enumeration describing the available options.

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

     -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 [LOO-CV|k-Fold-CV|Cumulative-CV]
      Score type (LOO-CV,k-Fold-CV,Cumulative-CV)

     -Q
      Use probabilistic or 0/1 scoring.
      (default probabilistic scoring)

Specified by:
  `setOptions` in interface `OptionHandler`
Overrides:
  `setOptions` in class `GlobalScoreSearchAlgorithm`
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 `GlobalScoreSearchAlgorithm`
Returns:
  an array of strings suitable for passing to setOptions

### randomOrderTipText

public String randomOrderTipText()

Returns:
  a string to describe the RandomOrder option.

### globalInfo

public String globalInfo()
This will return a string describing the search algorithm.

Overrides:
  `globalInfo` in class `GlobalScoreSearchAlgorithm`
Returns:
  The string.

### getRevision

public String getRevision()
Returns the revision string.

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