Class BayesNetGenerator

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.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
    • Constructor Detail

      • BayesNetGenerator

        public BayesNetGenerator()
        Constructor for BayesNetGenerator.
    • Method Detail

      • generateRandomNetwork

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

        public void Init​(int nNodes,
                         int nValues)
                  throws java.lang.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:
        java.lang.Exception - if something goes wrong
      • generateRandomNetworkStructure

        public void generateRandomNetworkStructure​(int nNodes,
                                                   int nArcs)
                                            throws java.lang.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:
        java.lang.Exception - if number of arcs is incorrect
      • generateInstances

        public void generateInstances()
                               throws java.lang.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:
        java.lang.Exception - if something goes wrong
      • toString

        public java.lang.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 java.util.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​(java.lang.String[] options)
                        throws java.lang.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:
        java.lang.Exception - if an option is not supported
      • getOptions

        public java.lang.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
      • main

        public static void main​(java.lang.String[] args)
        Main method
        Parameters:
        args - the commandline parameters