Package weka.classifiers.bayes.net

# Class BayesNetGenerator

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

All Implemented Interfaces:
  `Serializable`, `Cloneable`, `AdditionalMeasureProducer`, `CapabilitiesHandler`, `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: 1.14 $
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
`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`
`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, 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.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

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