weka.classifiers.bayes
Class BayesNetB2

java.lang.Object
  extended byweka.classifiers.Classifier
      extended byweka.classifiers.bayes.BayesNet
          extended byweka.classifiers.bayes.BayesNetB
              extended byweka.classifiers.bayes.BayesNetB2
All Implemented Interfaces:
java.lang.Cloneable, Drawable, OptionHandler, java.io.Serializable, WeightedInstancesHandler

public class BayesNetB2
extends BayesNetB

Class for a Bayes Network classifier based on Buntines hill climbing algorithm for learning structure, but augmented to allow arc reversal as an operation. Works with nominal variables only.

Version:
$Revision: 1.3 $
Author:
Remco Bouckaert (rrb@xm.co.nz)
See Also:
Serialized Form

Field Summary
 
Fields inherited from class weka.classifiers.bayes.BayesNet
m_ADTree, m_bInitAsNaiveBayes, m_bUseADTree, m_Distributions, m_fAlpha, m_Instances, m_nMaxNrOfParents, m_nOrder, m_nScoreType, m_NumClasses, m_ParentSets, TAGS_SCORE_TYPE
 
Fields inherited from class weka.classifiers.Classifier
m_Debug
 
Fields inherited from interface weka.core.Drawable
BayesNet, NOT_DRAWABLE, TREE
 
Constructor Summary
BayesNetB2()
           
 
Method Summary
private  boolean AddArcMakesSense(int iAttributeHead, int iAttributeTail)
          AddArcMakesSense checks whether adding the arc from iAttributeTail to iAttributeHead does not already exists and does not introduce a cycle
 void buildStructure()
          buildStructure determines the network structure/graph of the network with Buntines greedy hill climbing algorithm, restricted by its initial structure (which can be an empty graph, or a Naive Bayes graph.
 java.lang.String globalInfo()
          This will return a string describing the classifier.
private  boolean IsArc(int iAttributeHead, int iAttributeTail)
          IsArc checks whether the arc from iAttributeTail to iAttributeHead already exists
static void main(java.lang.String[] argv)
          Main method for testing this class.
private  boolean ReverseArcMakesCycle(int iAttributeHead, int iAttributeTail)
          ReverseArcMakesCycle checks whether the arc from iAttributeTail to iAttributeHead exists and reversing does not introduce a cycle
 
Methods inherited from class weka.classifiers.bayes.BayesNet
alphaTipText, buildClassifier, CalcNodeScore, CalcScoreOfCounts, CalcScoreOfCounts2, CalcScoreWithExtraParent, countsForInstance, distributionForInstance, estimateCPTs, getAlpha, getInitAsNaiveBayes, getMaxNrOfParents, getOptions, getScoreType, getUseADTree, graph, graphType, initAsNaiveBayesTipText, initStructure, listOptions, logScore, maxNrOfParentsTipText, scoreTypeTipText, setAlpha, setInitAsNaiveBayes, setMaxNrOfParents, setOptions, setScoreType, setUseADTree, toString, toXMLBIF03, updateClassifier, useADTreeTipText, XMLNormalize
 
Methods inherited from class weka.classifiers.Classifier
classifyInstance, debugTipText, forName, getDebug, makeCopies, setDebug
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

BayesNetB2

public BayesNetB2()
Method Detail

globalInfo

public java.lang.String globalInfo()
This will return a string describing the classifier.

Overrides:
globalInfo in class BayesNetB
Returns:
The string.

buildStructure

public void buildStructure()
                    throws java.lang.Exception
buildStructure determines the network structure/graph of the network with Buntines greedy hill climbing algorithm, restricted by its initial structure (which can be an empty graph, or a Naive Bayes graph.

Overrides:
buildStructure in class BayesNetB
Throws:
java.lang.Exception

IsArc

private boolean IsArc(int iAttributeHead,
                      int iAttributeTail)
IsArc checks whether the arc from iAttributeTail to iAttributeHead already exists


AddArcMakesSense

private boolean AddArcMakesSense(int iAttributeHead,
                                 int iAttributeTail)
AddArcMakesSense checks whether adding the arc from iAttributeTail to iAttributeHead does not already exists and does not introduce a cycle


ReverseArcMakesCycle

private boolean ReverseArcMakesCycle(int iAttributeHead,
                                     int iAttributeTail)
ReverseArcMakesCycle checks whether the arc from iAttributeTail to iAttributeHead exists and reversing does not introduce a cycle


main

public static void main(java.lang.String[] argv)
Main method for testing this class.

Parameters:
argv - the options