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:
java.io.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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
getInitAsNaiveBayes()
Gets whether to init as naive bayesint
getMaxNrOfParents()
Gets the max number of parents.java.lang.String[]
getOptions()
Gets the current settings of the search algorithm.boolean
getRandomOrder()
Get random order flagjava.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 bayesvoid
setMaxNrOfParents(int nMaxNrOfParents)
Sets the max number of parentsvoid
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.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
-
-
-
-
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 interfaceTechnicalInformationHandler
- 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 networkinstances
- 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 interfaceOptionHandler
- Overrides:
listOptions
in classGlobalScoreSearchAlgorithm
- 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 [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 interfaceOptionHandler
- Overrides:
setOptions
in classGlobalScoreSearchAlgorithm
- 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 interfaceOptionHandler
- Overrides:
getOptions
in classGlobalScoreSearchAlgorithm
- Returns:
- an array of strings suitable for passing to setOptions
-
randomOrderTipText
public java.lang.String randomOrderTipText()
- Returns:
- a string to describe the RandomOrder option.
-
globalInfo
public java.lang.String globalInfo()
This will return a string describing the search algorithm.- Overrides:
globalInfo
in classGlobalScoreSearchAlgorithm
- Returns:
- The string.
-
getRevision
public java.lang.String getRevision()
Returns the revision string.- Specified by:
getRevision
in interfaceRevisionHandler
- Overrides:
getRevision
in classGlobalScoreSearchAlgorithm
- Returns:
- the revision
-
-