Package weka.classifiers.bayes.net

# Class BIFReader

java.lang.Object
weka.classifiers.Classifier
weka.classifiers.bayes.BayesNet
weka.classifiers.bayes.net.BIFReader

All Implemented Interfaces:
  `Serializable`, `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, Newick, NOT_DRAWABLE, TREE`

## Constructor Summary

Constructors
Constructor
Description
`BIFReader()`
the default constructor

## Method Summary

Modifier and Type
Method
Description
`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.
`String`
`getContent(Element node)`
Returns all TEXT children of the given node in one string.
`String`
`getFileName()`
returns the current filename
`int`
`getNode(String sNodeName)`
getNode finds the index of the node with name sNodeName and throws an exception if no such node can be found.
`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 classifier.
`static void`
`main(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(String sFile)`
processFile reads a BIFXML file and initializes a Bayes Net
`BIFReader`
`processString(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 Details

### BIFReader

public BIFReader()
the default constructor

## Method Details

### globalInfo

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

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

### processFile

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

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

### processString

public BIFReader processString(String sStr) throws Exception

Throws:
  `Exception`

### getFileName

public 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 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:
  `Exception` - if nr of attributes differs or not all of the variables have the same name.

### getContent

public String getContent(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(String sNodeName) throws 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:
  `Exception` - if node cannot be found

### getRevision

public 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(String[] args)
Loads the file specified as first parameter and prints it to stdout.

Parameters:
  `args` - the command line parameters