adams.flow.transformer
Class WekaCrossValidationSplit

java.lang.Object
  extended by adams.core.ConsoleObject
      extended by adams.core.option.AbstractOptionHandler
          extended by adams.flow.core.AbstractActor
              extended by adams.flow.transformer.AbstractTransformer
                  extended by adams.flow.transformer.WekaCrossValidationSplit
All Implemented Interfaces:
AdditionalInformationHandler, CleanUpHandler, Debuggable, DebugOutputHandler, Destroyable, OptionHandler, QuickInfoSupporter, Randomizable, ShallowCopySupporter<AbstractActor>, SizeOfHandler, Stoppable, VariableChangeListener, ErrorHandler, InputConsumer, OutputProducer, ProvenanceSupporter, Serializable, Comparable

public class WekaCrossValidationSplit
extends AbstractTransformer
implements Randomizable, ProvenanceSupporter

Generates train/test pairs like during a cross-validation run. It is possible to generate pairs for leave-one-out cross-validation (LOOCV) as well.
It is essential that a class attribute is set. In case of a nominal class attribute, the data gets stratified automatically.
Each of the pairs gets forwarded as a container. The training set can be accessed in the container with 'Train' and the test set with 'Test'.

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

Valid options are:

-D <int> (property: debugLevel)
    The greater the number the more additional info the scheme may output to
    the console (0 = off).
    default: 0
    minimum: 0
 
-name <java.lang.String> (property: name)
    The name of the actor.
    default: CrossValidationSplit
 
-annotation <adams.core.base.BaseText> (property: annotations)
    The annotations to attach to this actor.
    default:
 
-skip (property: skip)
    If set to true, transformation is skipped and the input token is just forwarded
    as it is.
 
-seed <long> (property: seed)
    The seed value for the randomization.
    default: 1
 
-folds <int> (property: folds)
    The folds to use; using '-1' will generate folds for leave-one-out cross-validation
    (LOOCV).
    default: 10
 
-relation <java.lang.String> (property: relationName)
    The placeholders for creating the relation name: @ = original relation name,
     $T = type (train/test), $N = current fold number.
    default: @
 

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

Field Summary
static String BACKUP_ACTUALFOLDS
          the key for storing the actual folds in the backup.
static String BACKUP_CURRENTFOLD
          the key for storing the current fold in the backup.
protected  int m_ActualFolds
          the actual number of folds to generate.
protected  int m_CurrentFold
          the current fold.
protected  weka.core.Instances m_Data
          the data to work with.
protected  int m_Folds
          the number of folds to generate.
protected  Random m_Random
          the random number generator to use for generating the folds.
protected  String m_RelationName
          the format of the relation names of the generated datasets.
protected  long m_Seed
          the seed value.
 
Fields inherited from class adams.flow.transformer.AbstractTransformer
BACKUP_INPUT, BACKUP_OUTPUT, m_InputToken, m_OutputToken
 
Fields inherited from class adams.flow.core.AbstractActor
FILE_EXTENSION, FILE_EXTENSION_GZ, m_Annotations, m_BackupState, m_DetectedObjectVariables, m_DetectedVariables, m_ErrorHandler, m_Executed, m_FullName, m_Headless, m_Name, m_Parent, m_Root, m_Self, m_Skip, m_StopFlowOnError, m_StopMessage, m_Stopped, m_StorageHandler, m_VariablesUpdated
 
Fields inherited from class adams.core.option.AbstractOptionHandler
m_DebugLevel, m_OptionManager
 
Constructor Summary
WekaCrossValidationSplit()
           
 
Method Summary
 Class[] accepts()
          Returns the class that the consumer accepts.
protected  Hashtable<String,Object> backupState()
          Backs up the current state of the actor before update the variables.
protected  String createRelationName(boolean train)
          Generates a relation name for the current fold.
 void defineOptions()
          Adds options to the internal list of options.
protected  String doExecute()
          Executes the flow item.
 String foldsTipText()
          Returns the tip text for this property.
 Class[] generates()
          Returns the class of objects that it generates.
 int getFolds()
          Returns the number of folds to generate.
 String getRelationName()
          Returns the pattern used for renaming the relation.
 long getSeed()
          Returns the seed value.
 String globalInfo()
          Returns a string describing the object.
 boolean hasPendingOutput()
          Checks whether there is pending output to be collected after executing the flow item.
 Token output()
          Returns the generated token.
protected  void pruneBackup()
          Removes entries from the backup.
 String relationNameTipText()
          Returns the tip text for this property.
protected  void reset()
          Resets the scheme.
protected  void restoreState(Hashtable<String,Object> state)
          Restores the state of the actor before the variables got updated.
 String seedTipText()
          Returns the tip text for this property.
 void setFolds(int value)
          Sets the number of folds to use.
 void setRelationName(String value)
          Sets the pattern to use for renaming the relation.
 void setSeed(long value)
          Sets the seed value.
 void updateProvenance(ProvenanceContainer cont)
          Updates the provenance information in the provided container.
 void wrapUp()
          Cleans up after the execution has finished.
 
Methods inherited from class adams.flow.transformer.AbstractTransformer
execute, input, postExecute
 
Methods inherited from class adams.flow.core.AbstractActor
annotationsTipText, canInspectOptions, canPerformSetUpCheck, cleanUp, compareTo, debug, destroy, equals, findVariables, findVariables, findVariables, forceVariables, forCommandLine, forName, getAdditionalInformation, getAnnotations, getDefaultName, getDetectedVariables, getErrorHandler, getFlowActors, getFullName, getName, getNextSibling, getParent, getPreviousSibling, getQuickInfo, getRoot, getSkip, getStopFlowOnError, getStopMessage, getStorageHandler, getVariables, handleError, hasErrorHandler, hasStopMessage, index, initialize, isBackedUp, isExecuted, isFinished, isHeadless, isStopped, nameTipText, performSetUpChecks, preExecute, pruneBackup, setAnnotations, setErrorHandler, setHeadless, setName, setParent, setSkip, setStopFlowOnError, setUp, setVariables, shallowCopy, shallowCopy, sizeOf, skipTipText, stopExecution, stopExecution, stopFlowOnErrorTipText, updateDetectedVariables, updatePrefix, updateVariables, variableChanged
 
Methods inherited from class adams.core.option.AbstractOptionHandler
cleanUpOptions, debug, debugLevelTipText, finishInit, getDebugLevel, getOptionManager, isDebugOn, newOptionManager, setDebugLevel, toCommandLine, toString
 
Methods inherited from class adams.core.ConsoleObject
getDebugging, getSystemErr, getSystemOut
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

BACKUP_CURRENTFOLD

public static final String BACKUP_CURRENTFOLD
the key for storing the current fold in the backup.

See Also:
Constant Field Values

BACKUP_ACTUALFOLDS

public static final String BACKUP_ACTUALFOLDS
the key for storing the actual folds in the backup.

See Also:
Constant Field Values

m_Seed

protected long m_Seed
the seed value.


m_Folds

protected int m_Folds
the number of folds to generate.


m_RelationName

protected String m_RelationName
the format of the relation names of the generated datasets.


m_CurrentFold

protected int m_CurrentFold
the current fold.


m_ActualFolds

protected int m_ActualFolds
the actual number of folds to generate.


m_Data

protected weka.core.Instances m_Data
the data to work with.


m_Random

protected Random m_Random
the random number generator to use for generating the folds.

Constructor Detail

WekaCrossValidationSplit

public WekaCrossValidationSplit()
Method Detail

globalInfo

public String globalInfo()
Returns a string describing the object.

Specified by:
globalInfo in class 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 OptionHandler
Overrides:
defineOptions in class AbstractActor

accepts

public Class[] accepts()
Returns the class that the consumer accepts.

Specified by:
accepts in interface InputConsumer
Returns:
weka.core.Instances.class

generates

public Class[] generates()
Returns the class of objects that it generates.

Specified by:
generates in interface OutputProducer
Returns:
adams.flow.container.TrainTestSetContainer.class

setSeed

public void setSeed(long value)
Sets the seed value.

Specified by:
setSeed in interface Randomizable
Parameters:
value - the seed

getSeed

public long getSeed()
Returns the seed value.

Specified by:
getSeed in interface Randomizable
Returns:
the seed

seedTipText

public String seedTipText()
Returns the tip text for this property.

Specified by:
seedTipText in interface Randomizable
Returns:
tip text for this property suitable for displaying in the GUI or for listing the options.

setFolds

public void setFolds(int value)
Sets the number of folds to use.

Parameters:
value - the folds, use 1 for LOOCV

getFolds

public int getFolds()
Returns the number of folds to generate.

Returns:
the folds, 1 in case of LOOCV

foldsTipText

public String foldsTipText()
Returns the tip text for this property.

Returns:
tip text for this property suitable for displaying in the GUI or for listing the options.

setRelationName

public void setRelationName(String value)
Sets the pattern to use for renaming the relation.

Parameters:
value - the pattern

getRelationName

public String getRelationName()
Returns the pattern used for renaming the relation.

Returns:
the pattern

relationNameTipText

public String relationNameTipText()
Returns the tip text for this property.

Returns:
tip text for this property suitable for displaying in the GUI or for listing the options.

pruneBackup

protected void pruneBackup()
Removes entries from the backup.

Overrides:
pruneBackup in class AbstractActor

backupState

protected Hashtable<String,Object> backupState()
Backs up the current state of the actor before update the variables.

Overrides:
backupState in class AbstractTransformer
Returns:
the backup

restoreState

protected void restoreState(Hashtable<String,Object> state)
Restores the state of the actor before the variables got updated.

Overrides:
restoreState in class AbstractTransformer
Parameters:
state - the backup of the state to restore from

reset

protected void reset()
Resets the scheme.

Overrides:
reset in class AbstractTransformer

doExecute

protected String doExecute()
Executes the flow item.

Specified by:
doExecute in class AbstractActor
Returns:
null if everything is fine, otherwise error message

hasPendingOutput

public boolean hasPendingOutput()
Checks whether there is pending output to be collected after executing the flow item.

Specified by:
hasPendingOutput in interface OutputProducer
Overrides:
hasPendingOutput in class AbstractTransformer
Returns:
true if there is pending output

createRelationName

protected String createRelationName(boolean train)
Generates a relation name for the current fold.

Parameters:
train - whether train or test set
Returns:
the relation name

output

public Token output()
Returns the generated token.

Specified by:
output in interface OutputProducer
Overrides:
output in class AbstractTransformer
Returns:
the generated token

updateProvenance

public void updateProvenance(ProvenanceContainer cont)
Updates the provenance information in the provided container.

Specified by:
updateProvenance in interface ProvenanceSupporter
Parameters:
cont - the provenance container to update

wrapUp

public void wrapUp()
Cleans up after the execution has finished.

Overrides:
wrapUp in class AbstractTransformer


Copyright © 2012 University of Waikato, Hamilton, NZ. All Rights Reserved.