All Implemented Interfaces:
Serializable, OptionHandler, Randomizable, RevisionHandler

public class BayesNet extends ClassificationGenerator
Generates random instances based on a Bayes network.

Valid options are:

 -h
  Prints this help.
 -o <file>
  The name of the output file, otherwise the generated data is
  printed to stdout.
 -r <name>
  The name of the relation.
 -d
  Whether to print debug informations.
 -S
  The seed for random function (default 1)
 -n <num>
  The number of examples to generate (default 100)
 -A <num>
  The number of arcs to use. (default 20)
 -N <num>
  The number of attributes to generate. (default 10)
 -C <num>
  The cardinality of the attributes and the class. (default 2)
Version:
$Revision: 11753 $
Author:
FracPete (fracpete at waikato dot ac dot nz)
See Also:
  • Constructor Details

    • BayesNet

      public BayesNet()
      initializes the generator
  • Method Details

    • globalInfo

      public String globalInfo()
      Returns a string describing this data generator.
      Returns:
      a description of the data generator suitable for displaying in the explorer/experimenter gui
    • listOptions

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

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

      Valid options are:

       -h
        Prints this help.
       -o <file>
        The name of the output file, otherwise the generated data is
        printed to stdout.
       -r <name>
        The name of the relation.
       -d
        Whether to print debug informations.
       -S
        The seed for random function (default 1)
       -n <num>
        The number of examples to generate (default 100)
       -A <num>
        The number of arcs to use. (default 20)
       -N <num>
        The number of attributes to generate. (default 10)
       -C <num>
        The cardinality of the attributes and the class. (default 2)
      Specified by:
      setOptions in interface OptionHandler
      Overrides:
      setOptions in class ClassificationGenerator
      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 datagenerator.
      Specified by:
      getOptions in interface OptionHandler
      Overrides:
      getOptions in class ClassificationGenerator
      Returns:
      an array of strings suitable for passing to setOptions
      See Also:
      • DataGenerator.removeBlacklist(String[])
    • setNumAttributes

      public void setNumAttributes(int numAttributes)
      Sets the number of attributes the dataset should have.
      Parameters:
      numAttributes - the new number of attributes
    • getNumAttributes

      public int getNumAttributes()
      Gets the number of attributes that should be produced.
      Returns:
      the number of attributes that should be produced
    • numAttributesTipText

      public String numAttributesTipText()
      Returns the tip text for this property
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • setCardinality

      public void setCardinality(int value)
      Sets the cardinality of the attributes (incl class attribute)
      Parameters:
      value - the cardinality
    • getCardinality

      public int getCardinality()
      Gets the cardinality of the attributes (incl class attribute)
      Returns:
      the cardinality of the attributes
    • cardinalityTipText

      public String cardinalityTipText()
      Returns the tip text for this property
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • setNumArcs

      public void setNumArcs(int value)
      Sets the number of arcs for the bayesian net
      Parameters:
      value - the number of arcs
    • getNumArcs

      public int getNumArcs()
      Gets the number of arcs for the bayesian net
      Returns:
      the number of arcs
    • numArcsTipText

      public String numArcsTipText()
      Returns the tip text for this property
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • setNumExamples

      public void setNumExamples(int numExamples)
      Sets the number of examples, given by option.
      Overrides:
      setNumExamples in class ClassificationGenerator
      Parameters:
      numExamples - the new number of examples
    • getNumExamples

      public int getNumExamples()
      Gets the number of examples, given by option.
      Overrides:
      getNumExamples in class ClassificationGenerator
      Returns:
      the number of examples, given by option
    • getSeed

      public int getSeed()
      Gets the random number seed.
      Specified by:
      getSeed in interface Randomizable
      Overrides:
      getSeed in class DataGenerator
      Returns:
      the random number seed.
    • setSeed

      public void setSeed(int newSeed)
      Sets the random number seed.
      Specified by:
      setSeed in interface Randomizable
      Overrides:
      setSeed in class DataGenerator
      Parameters:
      newSeed - the new random number seed.
    • getSingleModeFlag

      public boolean getSingleModeFlag() throws Exception
      Return if single mode is set for the given data generator mode depends on option setting and or generator type.
      Specified by:
      getSingleModeFlag in class DataGenerator
      Returns:
      single mode flag
      Throws:
      Exception - if mode is not set yet
    • defineDataFormat

      public Instances defineDataFormat() throws Exception
      Initializes the format for the dataset produced. Must be called before the generateExample or generateExamples methods are used. Re-initializes the random number generator with the given seed.
      Overrides:
      defineDataFormat in class DataGenerator
      Returns:
      the format for the dataset
      Throws:
      Exception - if the generating of the format failed
      See Also:
    • generateExample

      public Instance generateExample() throws Exception
      Generates one example of the dataset.
      Specified by:
      generateExample in class DataGenerator
      Returns:
      the generated example
      Throws:
      Exception - if the format of the dataset is not yet defined
      Exception - if the generator only works with generateExamples which means in non single mode
    • generateExamples

      public Instances generateExamples() throws Exception
      Generates all examples of the dataset. Re-initializes the random number generator with the given seed, before generating instances.
      Specified by:
      generateExamples in class DataGenerator
      Returns:
      the generated dataset
      Throws:
      Exception - if the format of the dataset is not yet defined
      Exception - if the generator only works with generateExample, which means in single mode
      See Also:
    • generateStart

      public String generateStart()
      Generates a comment string that documentates the data generator. By default this string is added at the beginning of the produced output as ARFF file type, next after the options.
      Specified by:
      generateStart in class DataGenerator
      Returns:
      string contains info about the generated rules
    • generateFinished

      public String generateFinished() throws Exception
      Generates a comment string that documentats the data generator. By default this string is added at the end of theproduces output as ARFF file type.
      Specified by:
      generateFinished in class DataGenerator
      Returns:
      string contains info about the generated rules
      Throws:
      Exception - if the generating of the documentaion fails
    • getRevision

      public String getRevision()
      Returns the revision string.
      Returns:
      the revision
    • main

      public static void main(String[] args)
      Main method for executing this class.
      Parameters:
      args - should contain arguments for the data producer: