weka.datagenerators.classifiers.regression
Class MexicanHat

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

public class MexicanHat
extends RegressionGenerator

A data generator for the simple 'Mexian Hat' function:
y = sin|x| / |x|
In addition to this simple 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).

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

Constructor Summary
MexicanHat()
          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.
 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.
 double getAmplitude()
          Gets the amplitude multiplier.
 double getMaxRange()
          Gets the upper boundary for the range of x
 double getMinRange()
          Gets the lower boundary for the range of x
 double getNoiseRate()
          Gets the gaussian noise rate.
 double getNoiseVariance()
          Gets the noise variance
 java.lang.String[] getOptions()
          Gets the current settings of the datagenerator BIRCHCluster.
 java.lang.String getRevision()
          Returns the revision string.
 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.
 java.lang.String maxRangeTipText()
          Returns the tip text for this property
 java.lang.String minRangeTipText()
          Returns the tip text for this property
 java.lang.String noiseRateTipText()
          Returns the tip text for this property
 java.lang.String noiseVarianceTipText()
          Returns the tip text for this property
 void setAmplitude(double value)
          Sets the amplitude multiplier.
 void setMaxRange(double value)
          Sets the upper boundary for the range of x
 void setMinRange(double value)
          Sets the lower boundary for the range of x
 void setNoiseRate(double value)
          Sets the gaussian noise rate.
 void setNoiseVariance(double value)
          Sets the noise variance
 void setOptions(java.lang.String[] options)
          Parses a list of options for this object.
 
Methods inherited from class weka.datagenerators.RegressionGenerator
getNumExamples, numExamplesTipText, setNumExamples
 
Methods inherited from class weka.datagenerators.DataGenerator
debugTipText, defaultOutput, formatTipText, getDatasetFormat, getDebug, getNumExamplesAct, 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

MexicanHat

public MexicanHat()
initializes the generator

Method Detail

globalInfo

public java.lang.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 java.util.Enumeration listOptions()
Returns an enumeration describing the available options.

Specified by:
listOptions in interface OptionHandler
Overrides:
listOptions in class RegressionGenerator
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).

Specified by:
setOptions in interface OptionHandler
Overrides:
setOptions in class RegressionGenerator
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 RegressionGenerator
Returns:
an array of strings suitable for passing to setOptions
See Also:
DataGenerator.removeBlacklist(String[])

getAmplitude

public double getAmplitude()
Gets the amplitude multiplier.

Returns:
the amplitude multiplier

setAmplitude

public void setAmplitude(double value)
Sets the amplitude multiplier.

Parameters:
value - the amplitude multiplier

amplitudeTipText

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

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

setMinRange

public void setMinRange(double value)
Sets the lower boundary for the range of x

Parameters:
value - the lower boundary

getMinRange

public double getMinRange()
Gets the lower boundary for the range of x

Returns:
the lower boundary for the range of x

minRangeTipText

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

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

setMaxRange

public void setMaxRange(double value)
Sets the upper boundary for the range of x

Parameters:
value - the upper boundary

getMaxRange

public double getMaxRange()
Gets the upper boundary for the range of x

Returns:
the upper boundary for the range of x

maxRangeTipText

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

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

getNoiseRate

public double getNoiseRate()
Gets the gaussian noise rate.

Returns:
the gaussian noise rate

setNoiseRate

public void setNoiseRate(double value)
Sets the gaussian noise rate.

Parameters:
value - the gaussian noise rate

noiseRateTipText

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

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

getNoiseVariance

public double getNoiseVariance()
Gets the noise variance

Returns:
the noise variance

setNoiseVariance

public void setNoiseVariance(double value)
Sets the noise variance

Parameters:
value - the noise variance

noiseVarianceTipText

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

Specified by:
getSingleModeFlag in class DataGenerator
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 DataGenerator
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.

Specified by:
generateExample in class DataGenerator
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.

Specified by:
generateExamples in class DataGenerator
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.

Specified by:
generateStart in class DataGenerator
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.

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

getRevision

public java.lang.String getRevision()
Returns the revision string.

Returns:
the revision

main

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

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