weka.classifiers.bayes.net
Class BIFReader

java.lang.Object
  extended by weka.classifiers.Classifier
      extended by weka.classifiers.bayes.BayesNet
          extended by weka.classifiers.bayes.net.BIFReader
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, AdditionalMeasureProducer, CapabilitiesHandler, Drawable, OptionHandler, RevisionHandler, TechnicalInformationHandler, WeightedInstancesHandler

public class BIFReader
extends BayesNet
implements TechnicalInformationHandler

Builds a description of a Bayes Net classifier stored in XML BIF 0.3 format.

For more details on XML BIF see:

Fabio Cozman, Marek Druzdzel, Daniel Garcia (1998). XML BIF version 0.3. URL http://www-2.cs.cmu.edu/~fgcozman/Research/InterchangeFormat/.

BibTeX:

 @misc{Cozman1998,
    author = {Fabio Cozman and Marek Druzdzel and Daniel Garcia},
    title = {XML BIF version 0.3},
    year = {1998},
    URL = {http://www-2.cs.cmu.edu/\~fgcozman/Research/InterchangeFormat/}
 }
 

Valid options are:

 -D
  Do not use ADTree data structure
 
 -B <BIF file>
  BIF file to compare with
 
 -Q weka.classifiers.bayes.net.search.SearchAlgorithm
  Search algorithm
 
 -E weka.classifiers.bayes.net.estimate.SimpleEstimator
  Estimator algorithm
 

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

Field Summary
 
Fields inherited from class weka.classifiers.bayes.BayesNet
m_Distributions, m_Instances
 
Fields inherited from interface weka.core.Drawable
BayesNet, NOT_DRAWABLE, TREE
 
Constructor Summary
BIFReader()
          the default constructor
 
Method Summary
 double divergence(BayesNet other)
          calculates the divergence between the probability distribution represented by this network and that of another, that is, \sum_{x\in X} P(x)log P(x)/Q(x) where X is the set of values the nodes in the network can take, P(x) the probability of this network for configuration x Q(x) the probability of the other network for configuration x
 int extraArcs(BayesNet other)
          Count nr of exta arcs from other network compared to current network Note that an arc is not 'extra' if it is reversed.
 java.lang.String getContent(org.w3c.dom.Element node)
          Returns all TEXT children of the given node in one string.
 java.lang.String getFileName()
          returns the current filename
 int getNode(java.lang.String sNodeName)
          getNode finds the index of the node with name sNodeName and throws an exception if no such node can be found.
 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 classifier.
static void main(java.lang.String[] args)
          Loads the file specified as first parameter and prints it to stdout.
 int missingArcs(BayesNet other)
          Count nr of arcs missing from other network compared to current network Note that an arc is not 'missing' if it is reversed.
 BIFReader processFile(java.lang.String sFile)
          processFile reads a BIFXML file and initializes a Bayes Net
 BIFReader processString(java.lang.String sStr)
           
 int reversedArcs(BayesNet other)
          Count nr of reversed arcs from other network compared to current network
 void Sync(BayesNet other)
          synchronizes the node ordering of this Bayes network with those in the other network (if possible).
 
Methods inherited from class weka.classifiers.bayes.BayesNet
BIFFileTipText, buildClassifier, buildStructure, countsForInstance, distributionForInstance, enumerateMeasures, estimateCPTs, estimatorTipText, getADTree, getBIFFile, getBIFHeader, getCapabilities, getCardinality, getDistributions, getEstimator, getMeasure, getName, getNodeName, getNodeValue, getNrOfNodes, getNrOfParents, getOptions, getParent, getParentCardinality, getParentSet, getParentSets, getProbability, getSearchAlgorithm, getUseADTree, graph, graphType, initCPTs, initStructure, listOptions, measureAICScore, measureBayesScore, measureBDeuScore, measureDivergence, measureEntropyScore, measureExtraArcs, measureMDLScore, measureMissingArcs, measureReversedArcs, partitionOptions, searchAlgorithmTipText, setBIFFile, setEstimator, setOptions, setSearchAlgorithm, setUseADTree, toString, toXMLBIF03, updateClassifier, useADTreeTipText
 
Methods inherited from class weka.classifiers.Classifier
classifyInstance, debugTipText, forName, getDebug, makeCopies, makeCopy, setDebug
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

BIFReader

public BIFReader()
the default constructor

Method Detail

globalInfo

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

Overrides:
globalInfo in class BayesNet
Returns:
The string.

processFile

public BIFReader processFile(java.lang.String sFile)
                      throws java.lang.Exception
processFile reads a BIFXML file and initializes a Bayes Net

Parameters:
sFile - name of the file to parse
Returns:
the BIFReader
Throws:
java.lang.Exception - if processing fails

processString

public BIFReader processString(java.lang.String sStr)
                        throws java.lang.Exception
Throws:
java.lang.Exception

getFileName

public java.lang.String getFileName()
returns the current filename

Returns:
the current filename

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

Sync

public void Sync(BayesNet other)
          throws java.lang.Exception
synchronizes the node ordering of this Bayes network with those in the other network (if possible).

Parameters:
other - Bayes network to synchronize with
Throws:
java.lang.Exception - if nr of attributes differs or not all of the variables have the same name.

getContent

public java.lang.String getContent(org.w3c.dom.Element node)
Returns all TEXT children of the given node in one string. Between the node values new lines are inserted.

Parameters:
node - the node to return the content for
Returns:
the content of the node

missingArcs

public int missingArcs(BayesNet other)
Count nr of arcs missing from other network compared to current network Note that an arc is not 'missing' if it is reversed.

Parameters:
other - network to compare with
Returns:
nr of missing arcs

extraArcs

public int extraArcs(BayesNet other)
Count nr of exta arcs from other network compared to current network Note that an arc is not 'extra' if it is reversed.

Parameters:
other - network to compare with
Returns:
nr of missing arcs

divergence

public double divergence(BayesNet other)
calculates the divergence between the probability distribution represented by this network and that of another, that is, \sum_{x\in X} P(x)log P(x)/Q(x) where X is the set of values the nodes in the network can take, P(x) the probability of this network for configuration x Q(x) the probability of the other network for configuration x

Parameters:
other - network to compare with
Returns:
divergence between this and other Bayes Network

reversedArcs

public int reversedArcs(BayesNet other)
Count nr of reversed arcs from other network compared to current network

Parameters:
other - network to compare with
Returns:
nr of missing arcs

getNode

public int getNode(java.lang.String sNodeName)
            throws java.lang.Exception
getNode finds the index of the node with name sNodeName and throws an exception if no such node can be found.

Parameters:
sNodeName - name of the node to get the index from
Returns:
index of the node with name sNodeName
Throws:
java.lang.Exception - if node cannot be found

getRevision

public java.lang.String getRevision()
Returns the revision string.

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

main

public static void main(java.lang.String[] args)
Loads the file specified as first parameter and prints it to stdout.

Parameters:
args - the command line parameters