weka.classifiers.bayes.net

## Class BIFReader

- java.lang.Object
- - weka.classifiers.AbstractClassifier
  - - weka.classifiers.bayes.BayesNet
    - - weka.classifiers.bayes.net.BIFReader

- All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, Classifier, AdditionalMeasureProducer, CapabilitiesHandler, CapabilitiesIgnorer, 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: 10153 $
  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 and Description
    `BIFReader()` the default constructor

  - ### Method Summary

    Methods
    Modifier and Type | Method and 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.
    `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, getNumInstances, 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.AbstractClassifier

      `classifyInstance, debugTipText, doNotCheckCapabilitiesTipText, forName, getDebug, getDoNotCheckCapabilities, makeCopies, makeCopy, runClassifier, setDebug, setDoNotCheckCapabilities`

    - ### 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