Class 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 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
      • 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: