weka.datagenerators.classifiers.regression
Class Expression

java.lang.Object
  extended by weka.datagenerators.DataGenerator
      extended by weka.datagenerators.RegressionGenerator
          extended by weka.datagenerators.classifiers.regression.MexicanHat
              extended by weka.datagenerators.classifiers.regression.Expression
All Implemented Interfaces:
java.io.Serializable, OptionHandler, Randomizable

public class Expression
extends MexicanHat

A data generator for generating y according to a given expression out of randomly generated x.
E.g., the mexican hat can be generated like this:
sin(abs(a1)) / abs(a1)
In addition to this function, the amplitude can be changed and gaussian noise can be added.

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 amplitude multiplier (default 1.0).
 -R <num>..<num>
  The range x is randomly drawn from (default -10.0..10.0).
 -N <num>
  The noise rate (default 0.0).
 -V <num>
  The noise variance (default 1.0).
 -E <expression>
  The expression to use for generating y out of x 
  (default sin(abs(a1)) / abs(a1)).

Version:
$Revision: 1.4 $
Author:
FracPete (fracpete at waikato dot ac dot nz)
See Also:
AddExpression, MexicanHat, Serialized Form

Constructor Summary
Expression()
          initializes the generator
 
Method Summary
 java.lang.String amplitudeTipText()
          Returns the tip text for this property
 Instances defineDataFormat()
          Initializes the format for the dataset produced.
 java.lang.String expressionTipText()
          Returns the tip text for this property
 Instance generateExample()
          Generates one example of the dataset.
 Instances generateExamples()
          Generates all examples of the dataset.
 java.lang.String generateFinished()
          Generates a comment string that documentats the data generator.
 java.lang.String generateStart()
          Generates a comment string that documentates the data generator.
 java.lang.String getExpression()
          Gets the mathematical expression for generating y out of x
 java.lang.String[] getOptions()
          Gets the current settings of the datagenerator BIRCHCluster.
 boolean getSingleModeFlag()
          Return if single mode is set for the given data generator mode depends on option setting and or generator type.
 java.lang.String globalInfo()
          Returns a string describing this data generator.
 java.util.Enumeration listOptions()
          Returns an enumeration describing the available options.
static void main(java.lang.String[] args)
          Main method for testing this class.
 void setExpression(java.lang.String value)
          Sets the mathematical expression to generate y out of x.
 void setOptions(java.lang.String[] options)
          Parses a list of options for this object.
 
Methods inherited from class weka.datagenerators.classifiers.regression.MexicanHat
getAmplitude, getMaxRange, getMinRange, getNoiseRate, getNoiseVariance, maxRangeTipText, minRangeTipText, noiseRateTipText, noiseVarianceTipText, setAmplitude, setMaxRange, setMinRange, setNoiseRate, setNoiseVariance
 
Methods inherited from class weka.datagenerators.RegressionGenerator
getNumExamples, numExamplesTipText, setNumExamples
 
Methods inherited from class weka.datagenerators.DataGenerator
debugTipText, defaultOutput, formatTipText, getDatasetFormat, getDebug, getOutput, getRandom, getRelationName, getSeed, makeData, outputTipText, randomTipText, relationNameTipText, seedTipText, setDatasetFormat, setDebug, setOutput, setRandom, setRelationName, setSeed
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Expression

public Expression()
initializes the generator

Method Detail

globalInfo

public java.lang.String globalInfo()
Returns a string describing this data generator.

Overrides:
globalInfo in class MexicanHat
Returns:
a description of the data generator suitable for displaying in the explorer/experimenter gui

listOptions

public java.util.Enumeration listOptions()
Returns an enumeration describing the available options.

Specified by:
listOptions in interface OptionHandler
Overrides:
listOptions in class MexicanHat
Returns:
an enumeration of all the available options

setOptions

public void setOptions(java.lang.String[] options)
                throws java.lang.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 amplitude multiplier (default 1.0).
 -R <num>..<num>
  The range x is randomly drawn from (default -10.0..10.0).
 -N <num>
  The noise rate (default 0.0).
 -V <num>
  The noise variance (default 1.0).
 -E <expression>
  The expression to use for generating y out of x 
  (default sin(abs(a1)) / abs(a1)).

Specified by:
setOptions in interface OptionHandler
Overrides:
setOptions in class MexicanHat
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 datagenerator BIRCHCluster.

Specified by:
getOptions in interface OptionHandler
Overrides:
getOptions in class MexicanHat
Returns:
an array of strings suitable for passing to setOptions
See Also:
DataGenerator.removeBlacklist(String[])

amplitudeTipText

public java.lang.String amplitudeTipText()
Returns the tip text for this property

Overrides:
amplitudeTipText in class MexicanHat
Returns:
tip text for this property suitable for displaying in the explorer/experimenter gui

getExpression

public java.lang.String getExpression()
Gets the mathematical expression for generating y out of x

Returns:
the expression for computing y

setExpression

public void setExpression(java.lang.String value)
Sets the mathematical expression to generate y out of x.

Parameters:
value - the expression for computing y

expressionTipText

public java.lang.String expressionTipText()
Returns the tip text for this property

Returns:
tip text for this property suitable for displaying in the explorer/experimenter gui

getSingleModeFlag

public boolean getSingleModeFlag()
                          throws java.lang.Exception
Return if single mode is set for the given data generator mode depends on option setting and or generator type.

Overrides:
getSingleModeFlag in class MexicanHat
Returns:
single mode flag
Throws:
java.lang.Exception - if mode is not set yet

defineDataFormat

public Instances defineDataFormat()
                           throws java.lang.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 MexicanHat
Returns:
the format for the dataset
Throws:
java.lang.Exception - if the generating of the format failed
See Also:
DataGenerator.getSeed()

generateExample

public Instance generateExample()
                         throws java.lang.Exception
Generates one example of the dataset.

Overrides:
generateExample in class MexicanHat
Returns:
the generated example
Throws:
java.lang.Exception - if the format of the dataset is not yet defined
java.lang.Exception - if the generator only works with generateExamples which means in non single mode

generateExamples

public Instances generateExamples()
                           throws java.lang.Exception
Generates all examples of the dataset. Re-initializes the random number generator with the given seed, before generating instances.

Overrides:
generateExamples in class MexicanHat
Returns:
the generated dataset
Throws:
java.lang.Exception - if the format of the dataset is not yet defined
java.lang.Exception - if the generator only works with generateExample, which means in single mode
See Also:
DataGenerator.getSeed()

generateStart

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

Overrides:
generateStart in class MexicanHat
Returns:
string contains info about the generated rules

generateFinished

public java.lang.String generateFinished()
                                  throws java.lang.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.

Overrides:
generateFinished in class MexicanHat
Returns:
string contains info about the generated rules
Throws:
java.lang.Exception - if the generating of the documentaion fails

main

public static void main(java.lang.String[] args)
Main method for testing this class.

Parameters:
args - should contain arguments for the data producer: