Package weka.classifiers.bayes.net

# Class BayesNetGenerator

java.lang.Object
weka.classifiers.AbstractClassifier
weka.classifiers.bayes.BayesNet
weka.classifiers.bayes.net.EditableBayesNet
weka.classifiers.bayes.net.BayesNetGenerator

All Implemented Interfaces:
  `Serializable`, `Cloneable`, `Classifier`, `AdditionalMeasureProducer`, `BatchPredictor`, `CapabilitiesHandler`, `CapabilitiesIgnorer`, `CommandlineRunnable`, `Drawable`, `OptionHandler`, `RevisionHandler`, `WeightedInstancesHandler`

public class BayesNetGenerator extends EditableBayesNet
Bayes Network learning using various search algorithms and quality measures.
Base class for a Bayes Network classifier. Provides datastructures (network structure, conditional probability distributions, etc.) and facilities common to Bayes Network learning algorithms like K2 and B.
For more information see:
http://www.cs.waikato.ac.nz/~remco/weka.pdf

Valid options are:

     -B
      Generate network (instead of instances)

     -N <integer>
      Nr of nodes

     -A <integer>
      Nr of arcs

     -M <integer>
      Nr of instances

     -C <integer>
      Cardinality of the variables

     -S <integer>
      Seed for random number generator

     -F <file>
      The BIF file to obtain the structure from.

Version:
  $Revision: 12448 $
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 class weka.classifiers.AbstractClassifier

  `BATCH_SIZE_DEFAULT, NUM_DECIMAL_PLACES_DEFAULT`

  ### Fields inherited from interface weka.core.Drawable

  `BayesNet, Newick, NOT_DRAWABLE, TREE`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `BayesNetGenerator()`
  Constructor for BayesNetGenerator.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `generateInstances()`
  GenerateInstances generates random instances sampling from the distribution represented by the Bayes network structure.
  `void`
  `generateRandomNetwork()`
  Generate random connected Bayesian network with discrete nodes having all the same cardinality.
  `void`
  `generateRandomNetworkStructure(int nNodes, int nArcs)`
  GenerateRandomNetworkStructure generate random connected Bayesian network
  `String[]`
  `getOptions()`
  Gets the current settings of the classifier.
  `String`
  `getRevision()`
  Returns the revision string.
  `void`
  `Init(int nNodes, int nValues)`
  Init defines a minimal Bayes net with no arcs
  `Enumeration<Option>`
  `listOptions()`
  Returns an enumeration describing the available options
  `static void`
  `main(String[] args)`
  Main method
  `void`
  `setOptions(String[] options)`
  Parses a given list of options.
  `String`
  `toString()`
  Returns either the net (if BIF format) or the generated instances

  ### Methods inherited from class weka.classifiers.bayes.net.EditableBayesNet

  `addArc, addArc, addArc, addNode, addNode, addNodeValue, alignBottom, alignLeft, alignRight, alignTop, canRedo, canUndo, centerHorizontal, centerVertical, clearUndoStack, deleteArc, deleteArc, deleteNode, deleteNode, deleteSelection, delNodeValue, getChildren, getContent, getDistribution, getDistribution, getEvidence, getMargin, getNode, getNode2, getPositionX, getPositionY, getValueName, getValues, getValues, isChanged, isSaved, lastActionMsg, layoutGraph, paste, redo, renameNodeValue, setData, setDistribution, setDistribution, setEvidence, setMargin, setNodeName, setPosition, setPosition, spaceHorizontal, spaceVertical, toXMLBIF03, toXMLBIF03, undo`

  ### 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, getParent, getParentCardinality, getParentSet, getParentSets, getProbability, getSearchAlgorithm, getUseADTree, globalInfo, graph, graphType, initCPTs, initStructure, measureAICScore, measureBayesScore, measureBDeuScore, measureDivergence, measureEntropyScore, measureExtraArcs, measureMDLScore, measureMissingArcs, measureReversedArcs, partitionOptions, searchAlgorithmTipText, setBIFFile, setEstimator, setSearchAlgorithm, setUseADTree, updateClassifier, useADTreeTipText`

  ### Methods inherited from class weka.classifiers.AbstractClassifier

  `batchSizeTipText, classifyInstance, debugTipText, distributionsForInstances, doNotCheckCapabilitiesTipText, forName, getBatchSize, getDebug, getDoNotCheckCapabilities, getNumDecimalPlaces, implementsMoreEfficientBatchPrediction, makeCopies, makeCopy, numDecimalPlacesTipText, postExecution, preExecution, run, runClassifier, setBatchSize, setDebug, setDoNotCheckCapabilities, setNumDecimalPlaces`

  ### Methods inherited from class java.lang.Object

  `equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### BayesNetGenerator

    public BayesNetGenerator()
    Constructor for BayesNetGenerator.

- ## Method Details

  - ### generateRandomNetwork

    public void generateRandomNetwork() throws Exception
    Generate random connected Bayesian network with discrete nodes having all the same cardinality.
    Throws:
      `Exception` - if something goes wrong

  - ### Init

    public void Init(int nNodes, int nValues) throws Exception
    Init defines a minimal Bayes net with no arcs
    Parameters:
      `nNodes` - number of nodes in the Bayes net
      `nValues` - number of values each of the nodes can take
    Throws:
      `Exception` - if something goes wrong

  - ### generateRandomNetworkStructure

    public void generateRandomNetworkStructure(int nNodes, int nArcs) throws Exception
    GenerateRandomNetworkStructure generate random connected Bayesian network
    Parameters:
      `nNodes` - number of nodes in the Bayes net to generate
      `nArcs` - number of arcs to generate. Must be between nNodes - 1 and nNodes * (nNodes-1) / 2
    Throws:
      `Exception` - if number of arcs is incorrect

  - ### generateInstances

    public void generateInstances() throws Exception
    GenerateInstances generates random instances sampling from the distribution represented by the Bayes network structure. It assumes a Bayes network structure has been initialized
    Throws:
      `Exception` - if something goes wrong

  - ### toString

    public String toString()
    Returns either the net (if BIF format) or the generated instances
    Overrides:
      `toString` in class `BayesNet`
    Returns:
      either the net or the generated instances

  - ### listOptions

    public Enumeration<Option> listOptions()
    Returns an enumeration describing the available options
    Specified by:
      `listOptions` in interface `OptionHandler`
    Overrides:
      `listOptions` in class `BayesNet`
    Returns:
      an enumeration of all the available options

  - ### setOptions

    public void setOptions(String[] options) throws Exception
    Parses a given list of options.

    Valid options are:

         -B
          Generate network (instead of instances)

         -N <integer>
          Nr of nodes

         -A <integer>
          Nr of arcs

         -M <integer>
          Nr of instances

         -C <integer>
          Cardinality of the variables

         -S <integer>
          Seed for random number generator

         -F <file>
          The BIF file to obtain the structure from.

    Specified by:
      `setOptions` in interface `OptionHandler`
    Overrides:
      `setOptions` in class `BayesNet`
    Parameters:
      `options` - the list of options as an array of strings
    Throws:
      `Exception` - if an option is not supported

  - ### getOptions

    public String[] getOptions()
    Gets the current settings of the classifier.
    Specified by:
      `getOptions` in interface `OptionHandler`
    Overrides:
      `getOptions` in class `BayesNet`
    Returns:
      an array of strings suitable for passing to setOptions

  - ### getRevision

    public String getRevision()
    Returns the revision string.
    Specified by:
      `getRevision` in interface `RevisionHandler`
    Overrides:
      `getRevision` in class `EditableBayesNet`
    Returns:
      the revision

  - ### main

    public static void main(String[] args)
    Main method
    Parameters:
      `args` - the commandline parameters