Class WekaRandomSplit

  • All Implemented Interfaces:
    adams.core.AdditionalInformationHandler, adams.core.ArrayProvider, adams.core.CleanUpHandler, adams.core.Destroyable, adams.core.GlobalInfoSupporter, adams.core.logging.LoggingLevelHandler, adams.core.logging.LoggingSupporter, adams.core.option.OptionHandler, adams.core.QuickInfoSupporter, adams.core.Randomizable, adams.core.ShallowCopySupporter<adams.flow.core.Actor>, adams.core.SizeOfHandler, adams.core.Stoppable, adams.core.StoppableWithFeedback, adams.core.VariablesInspectionHandler, InstancesViewCreator, adams.event.VariableChangeListener, adams.flow.core.Actor, adams.flow.core.ArrayProvider, adams.flow.core.ErrorHandler, adams.flow.core.InputConsumer, adams.flow.core.OutputProducer, Serializable, Comparable

    public class WekaRandomSplit
    extends adams.flow.transformer.AbstractArrayProvider
    implements adams.core.Randomizable, InstancesViewCreator
    Splits a dataset into a training and test set according to a specified split percentage. Randomization can be suppressed using the 'preserve order' option.
    The training set can be accessed in the container with 'Train' and the test set with 'Test'.
    Depending on the split generator in use, more than one container may be output.

    Input/output:
    - accepts:
       weka.core.Instances
    - generates:
       adams.flow.container.WekaTrainTestSetContainer


    Container information:
    - adams.flow.container.WekaTrainTestSetContainer: Train, Test, Seed, FoldNumber, FoldCount, Train original indices, Test original indices

    -logging-level <OFF|SEVERE|WARNING|INFO|CONFIG|FINE|FINER|FINEST> (property: loggingLevel)
        The logging level for outputting errors and debugging output.
        default: WARNING
     
    -name <java.lang.String> (property: name)
        The name of the actor.
        default: WekaRandomSplit
     
    -annotation <adams.core.base.BaseAnnotation> (property: annotations)
        The annotations to attach to this actor.
        default:
     
    -skip <boolean> (property: skip)
        If set to true, transformation is skipped and the input token is just forwarded
        as it is.
        default: false
     
    -stop-flow-on-error <boolean> (property: stopFlowOnError)
        If set to true, the flow execution at this level gets stopped in case this
        actor encounters an error; the error gets propagated; useful for critical
        actors.
        default: false
     
    -silent <boolean> (property: silent)
        If enabled, then no errors are output in the console; Note: the enclosing
        actor handler must have this enabled as well.
        default: false
     
    -output-array <boolean> (property: outputArray)
        If enabled, the splits are output as array rather than one-by-one.
        default: false
     
    -preserve-order <boolean> (property: preserveOrder)
        If set to true, then the order is preserved by suppressing randomization;
         overrides the value defined by the split generator scheme.
        default: false
     
    -seed <long> (property: seed)
        The seed value for the randomization; overrides the value defined by the
        split generator scheme.
        default: 1
     
    -percentage <double> (property: percentage)
        The percentage for the split (between 0 and 1); overrides the value defined
        by the split generator scheme.
        default: 0.66
        minimum: 1.0E-4
        maximum: 0.9999
     
    -create-view <boolean> (property: createView)
        If enabled, views of the dataset are created instead of actual copies; overrides
        the value defined by the split generator scheme.
        default: false
     
    -generator <weka.classifiers.RandomSplitGenerator> (property: generator)
        The scheme to use for generating the split; the actor options take precedence
        over the scheme's ones.
        default: weka.classifiers.DefaultRandomSplitGenerator
     
    Author:
    fracpete (fracpete at waikato dot ac dot nz)
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected RandomSplitGenerator m_ActualGenerator
      the currently active generator.
      protected boolean m_CreateView
      whether to create a view only.
      protected RandomSplitGenerator m_Generator
      the split generator to use.
      protected double m_Percentage
      the percentage for the split (0-1).
      protected boolean m_PreserveOrder
      whether to preserve the order.
      protected long m_Seed
      the seed value.
      • Fields inherited from class adams.flow.transformer.AbstractArrayProvider

        BACKUP_INDEX, BACKUP_QUEUE, m_Index, m_OutputArray, m_Queue
      • Fields inherited from class adams.flow.transformer.AbstractTransformer

        BACKUP_INPUT, BACKUP_OUTPUT, m_InputToken, m_OutputToken
      • Fields inherited from class adams.flow.core.AbstractActor

        m_Annotations, m_BackupState, m_DetectedObjectVariables, m_DetectedVariables, m_ErrorHandler, m_Executed, m_Executing, m_ExecutionListeningSupporter, m_FullName, m_LoggingPrefix, m_Name, m_Parent, m_ScopeHandler, m_Self, m_Silent, m_Skip, m_StopFlowOnError, m_StopMessage, m_Stopped, m_StorageHandler, m_VariablesUpdated
      • Fields inherited from class adams.core.option.AbstractOptionHandler

        m_OptionManager
      • Fields inherited from class adams.core.logging.LoggingObject

        m_Logger, m_LoggingIsEnabled, m_LoggingLevel
      • Fields inherited from interface adams.flow.core.Actor

        FILE_EXTENSION, FILE_EXTENSION_GZ
    • Constructor Summary

      Constructors 
      Constructor Description
      WekaRandomSplit()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      Class[] accepts()
      Returns the class that the consumer accepts.
      String createViewTipText()
      Returns the tip text for this property.
      void defineOptions()
      Adds options to the internal list of options.
      protected String doExecute()
      Executes the flow item.
      String generatorTipText()
      Returns the tip text for this property.
      boolean getCreateView()
      Returns whether to create only a view.
      RandomSplitGenerator getGenerator()
      Returns the scheme for generating the split.
      protected Class getItemClass()
      Returns the base class of the items.
      double getPercentage()
      Returns the percentage (0-1).
      boolean getPreserveOrder()
      Returns whether to preserve order and suppress randomization.
      String getQuickInfo()
      Returns a quick info about the actor, which will be displayed in the GUI.
      long getSeed()
      Returns the seed value.
      String globalInfo()
      Returns a string describing the object.
      String outputArrayTipText()
      Returns the tip text for this property.
      String percentageTipText()
      Returns the tip text for this property.
      String preserveOrderTipText()
      Returns the tip text for this property.
      protected void reset()
      Resets the scheme.
      String seedTipText()
      Returns the tip text for this property.
      void setCreateView​(boolean value)
      Sets whether to create a view only.
      void setGenerator​(RandomSplitGenerator value)
      Sets the scheme for generating the split.
      void setPercentage​(double value)
      Sets the percentage (0-1).
      void setPreserveOrder​(boolean value)
      Sets whether to preserve order and suppress randomization.
      void setSeed​(long value)
      Sets the seed value.
      void stopExecution()
      Stops the execution.
      • Methods inherited from class adams.flow.transformer.AbstractArrayProvider

        backupState, generates, getOutputArray, hasPendingOutput, output, preExecute, pruneBackup, restoreState, setOutputArray, wrapUp
      • Methods inherited from class adams.flow.transformer.AbstractTransformer

        currentInput, execute, hasInput, input, postExecute
      • Methods inherited from class adams.flow.core.AbstractActor

        annotationsTipText, canInspectOptions, canPerformSetUpCheck, cleanUp, compareTo, configureLogger, destroy, equals, finalUpdateVariables, findVariables, findVariables, forceVariables, forCommandLine, forName, forName, getAdditionalInformation, getAnnotations, getDefaultName, getDetectedVariables, getErrorHandler, getFlowActors, getFlowExecutionListeningSupporter, getFullName, getName, getNextSibling, getParent, getParentComponent, getPreviousSibling, getRoot, getScopeHandler, getSilent, getSkip, getStopFlowOnError, getStopMessage, getStorageHandler, getVariables, handleError, handleException, hasErrorHandler, hasStopMessage, index, initialize, isBackedUp, isExecuted, isExecuting, isFinished, isHeadless, isStopped, nameTipText, performSetUpChecks, performVariableChecks, pruneBackup, setAnnotations, setErrorHandler, setName, setParent, setSilent, setSkip, setStopFlowOnError, setUp, setVariables, shallowCopy, shallowCopy, silentTipText, sizeOf, skipTipText, stopExecution, stopFlowOnErrorTipText, updateDetectedVariables, updatePrefix, updateVariables, variableChanged
      • Methods inherited from class adams.core.option.AbstractOptionHandler

        cleanUpOptions, finishInit, getDefaultLoggingLevel, getOptionManager, loggingLevelTipText, newOptionManager, setLoggingLevel, toCommandLine, toString
      • Methods inherited from class adams.core.logging.LoggingObject

        getLogger, getLoggingLevel, initializeLogging, isLoggingEnabled
      • Methods inherited from interface adams.flow.core.Actor

        cleanUp, compareTo, destroy, equals, execute, findVariables, getAnnotations, getDefaultName, getDetectedVariables, getErrorHandler, getFlowExecutionListeningSupporter, getFullName, getName, getNextSibling, getParent, getParentComponent, getPreviousSibling, getRoot, getScopeHandler, getSilent, getSkip, getStopFlowOnError, getStopMessage, getStorageHandler, getVariables, handleError, hasErrorHandler, hasStopMessage, index, isExecuted, isFinished, isHeadless, isStopped, setAnnotations, setErrorHandler, setName, setParent, setSilent, setSkip, setStopFlowOnError, setUp, setVariables, shallowCopy, shallowCopy, sizeOf, stopExecution, toCommandLine, variableChanged
      • Methods inherited from interface adams.core.AdditionalInformationHandler

        getAdditionalInformation
      • Methods inherited from interface adams.core.logging.LoggingLevelHandler

        getLoggingLevel, setLoggingLevel
      • Methods inherited from interface adams.core.logging.LoggingSupporter

        getLogger, isLoggingEnabled
      • Methods inherited from interface adams.core.option.OptionHandler

        cleanUpOptions, getOptionManager
      • Methods inherited from interface adams.core.VariablesInspectionHandler

        canInspectOptions
    • Field Detail

      • m_PreserveOrder

        protected boolean m_PreserveOrder
        whether to preserve the order.
      • m_Seed

        protected long m_Seed
        the seed value.
      • m_Percentage

        protected double m_Percentage
        the percentage for the split (0-1).
      • m_CreateView

        protected boolean m_CreateView
        whether to create a view only.
      • m_ActualGenerator

        protected transient RandomSplitGenerator m_ActualGenerator
        the currently active generator.
    • Constructor Detail

      • WekaRandomSplit

        public WekaRandomSplit()
    • Method Detail

      • globalInfo

        public String globalInfo()
        Returns a string describing the object.
        Specified by:
        globalInfo in interface adams.core.GlobalInfoSupporter
        Specified by:
        globalInfo in class adams.core.option.AbstractOptionHandler
        Returns:
        a description suitable for displaying in the gui
      • defineOptions

        public void defineOptions()
        Adds options to the internal list of options.
        Specified by:
        defineOptions in interface adams.core.option.OptionHandler
        Overrides:
        defineOptions in class adams.flow.transformer.AbstractArrayProvider
      • reset

        protected void reset()
        Resets the scheme.
        Overrides:
        reset in class adams.flow.transformer.AbstractArrayProvider
      • getQuickInfo

        public String getQuickInfo()
        Returns a quick info about the actor, which will be displayed in the GUI.
        Specified by:
        getQuickInfo in interface adams.flow.core.Actor
        Specified by:
        getQuickInfo in interface adams.core.QuickInfoSupporter
        Overrides:
        getQuickInfo in class adams.flow.core.AbstractActor
        Returns:
        null if no info available, otherwise short string
      • accepts

        public Class[] accepts()
        Returns the class that the consumer accepts.
        Specified by:
        accepts in interface adams.flow.core.InputConsumer
        Returns:
        weka.core.Instances.class
      • getItemClass

        protected Class getItemClass()
        Returns the base class of the items.
        Specified by:
        getItemClass in class adams.flow.transformer.AbstractArrayProvider
        Returns:
        the class
      • outputArrayTipText

        public String outputArrayTipText()
        Returns the tip text for this property.
        Specified by:
        outputArrayTipText in interface adams.core.ArrayProvider
        Specified by:
        outputArrayTipText in interface adams.flow.core.ArrayProvider
        Specified by:
        outputArrayTipText in class adams.flow.transformer.AbstractArrayProvider
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setPreserveOrder

        public void setPreserveOrder​(boolean value)
        Sets whether to preserve order and suppress randomization.
        Parameters:
        value - if true then no randomization will happen
      • getPreserveOrder

        public boolean getPreserveOrder()
        Returns whether to preserve order and suppress randomization.
        Returns:
        true if to preserve order and suppress randomization
      • preserveOrderTipText

        public String preserveOrderTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setSeed

        public void setSeed​(long value)
        Sets the seed value.
        Specified by:
        setSeed in interface adams.core.Randomizable
        Parameters:
        value - the seed
      • getSeed

        public long getSeed()
        Returns the seed value.
        Specified by:
        getSeed in interface adams.core.Randomizable
        Returns:
        the seed
      • seedTipText

        public String seedTipText()
        Returns the tip text for this property.
        Specified by:
        seedTipText in interface adams.core.Randomizable
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setPercentage

        public void setPercentage​(double value)
        Sets the percentage (0-1).
        Parameters:
        value - the percentage
      • getPercentage

        public double getPercentage()
        Returns the percentage (0-1).
        Returns:
        the percentage
      • percentageTipText

        public String percentageTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setCreateView

        public void setCreateView​(boolean value)
        Sets whether to create a view only.
        Specified by:
        setCreateView in interface InstancesViewCreator
        Parameters:
        value - true if to create a view only
      • getCreateView

        public boolean getCreateView()
        Returns whether to create only a view.
        Specified by:
        getCreateView in interface InstancesViewCreator
        Returns:
        true if to create view only
      • createViewTipText

        public String createViewTipText()
        Returns the tip text for this property.
        Specified by:
        createViewTipText in interface InstancesViewCreator
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setGenerator

        public void setGenerator​(RandomSplitGenerator value)
        Sets the scheme for generating the split.
        Parameters:
        value - the generator
      • getGenerator

        public RandomSplitGenerator getGenerator()
        Returns the scheme for generating the split.
        Returns:
        the generator
      • generatorTipText

        public String generatorTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • doExecute

        protected String doExecute()
        Executes the flow item.
        Specified by:
        doExecute in class adams.flow.core.AbstractActor
        Returns:
        null if everything is fine, otherwise error message
      • stopExecution

        public void stopExecution()
        Stops the execution. No message set.
        Specified by:
        stopExecution in interface adams.flow.core.Actor
        Specified by:
        stopExecution in interface adams.core.Stoppable
        Overrides:
        stopExecution in class adams.flow.core.AbstractActor