Package adams.flow.transformer
Class WekaRepeatedCrossValidationEvaluator
- java.lang.Object
-
- adams.core.logging.LoggingObject
-
- adams.core.logging.CustomLoggingLevelObject
-
- adams.core.option.AbstractOptionHandler
-
- adams.flow.core.AbstractActor
-
- adams.flow.transformer.AbstractTransformer
-
- adams.flow.transformer.AbstractWekaClassifierEvaluator
-
- adams.flow.transformer.AbstractCallableWekaClassifierEvaluator
-
- adams.flow.transformer.WekaRepeatedCrossValidationEvaluator
-
- All Implemented Interfaces:
adams.core.AdditionalInformationHandler
,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.ShallowCopySupporter<adams.flow.core.Actor>
,adams.core.SizeOfHandler
,adams.core.Stoppable
,adams.core.StoppableWithFeedback
,adams.core.ThreadLimiter
,adams.core.VariablesInspectionHandler
,InstancesViewSupporter
,adams.event.VariableChangeListener
,adams.flow.core.Actor
,adams.flow.core.ErrorHandler
,adams.flow.core.InputConsumer
,adams.flow.core.OutputProducer
,Serializable
,Comparable
public class WekaRepeatedCrossValidationEvaluator extends AbstractCallableWekaClassifierEvaluator implements adams.core.ThreadLimiter, InstancesViewSupporter
Performs repeated cross-validation a classifier on an incoming dataset. The classifier setup being used in the evaluation is a callable 'Classifier' actor.
Input/output:
- accepts:
weka.core.Instances
- generates:
adams.flow.container.WekaEvaluationContainer[]
-logging-level <OFF|SEVERE|WARNING|INFO|CONFIG|FINE|FINER|FINEST> (property: loggingLevel) The logging level for outputting errors and debugging output. default: WARNING min-user-mode: Expert
-name <java.lang.String> (property: name) The name of the actor. default: WekaRepeatedCrossValidationEvaluator
-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 min-user-mode: Expert
-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 min-user-mode: Expert
-classifier <adams.flow.core.CallableActorReference> (property: classifier) The callable classifier actor to cross-validate on the input data. default: WekaClassifierSetup
-no-predictions <boolean> (property: discardPredictions) If enabled, the collection of predictions during evaluation is suppressed, wich will conserve memory. default: false
-runs <int> (property: runs) The number of cross-validation runs to perform. default: 10 minimum: 1
-folds <int> (property: folds) The number of folds to use in the cross-validation; use -1 for leave-one-out cross-validation (LOOCV); overrides the value defined by the fold generator scheme. default: 10 minimum: -1
-num-threads <int> (property: numThreads) The number of threads to use for parallel execution; > 0: specific number of cores to use (capped by actual number of cores available, 1 = sequential execution); = 0: number of cores; < 0: number of free cores (eg -2 means 2 free cores; minimum of one core is used); overrides the value defined by the fold generator scheme. default: 1
-generator <weka.classifiers.CrossValidationFoldGenerator> (property: generator) The scheme to use for generating the folds; the actor options take precedence over the scheme's ones. default: weka.classifiers.DefaultCrossValidationFoldGenerator
- Author:
- fracpete (fracpete at waikato dot ac dot nz)
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected WekaCrossValidationExecution
m_CrossValidation
for performing cross-validation.protected int
m_Folds
the number of folds.protected CrossValidationFoldGenerator
m_Generator
the fold generator.protected adams.flow.standalone.JobRunnerSetup
m_JobRunnerSetup
the jobrunner setup.protected int
m_NumThreads
the number of threads to use for parallel execution.protected int
m_Runs
the number of runs to perform.protected boolean
m_UseViews
whether to use views.-
Fields inherited from class adams.flow.transformer.AbstractCallableWekaClassifierEvaluator
m_Classifier, m_DiscardPredictions
-
Fields inherited from class adams.flow.transformer.AbstractWekaClassifierEvaluator
m_AlwaysUseContainer, m_Output, m_OutputBuffer
-
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
-
-
Constructor Summary
Constructors Constructor Description WekaRepeatedCrossValidationEvaluator()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Class[]
accepts()
Returns the class that the consumer accepts.String
classifierTipText()
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
foldsTipText()
Returns the tip text for this property.Class[]
generates()
Returns the class of objects that it generates.String
generatorTipText()
Returns the tip text for this property.int
getFolds()
Returns the number of folds.CrossValidationFoldGenerator
getGenerator()
Returns the scheme for generating the folds.int
getNumThreads()
Returns the number of threads to use for cross-validation.String
getQuickInfo()
Returns a quick info about the actor, which will be displayed in the GUI.int
getRuns()
Returns the number of runs to perform.boolean
getUseViews()
Returns whether to use views instead of dataset copies, in order to conserve memory.String
globalInfo()
Returns a string describing the object.String
numThreadsTipText()
Returns the tip text for this property.String
outputTipText()
Returns the tip text for this property.protected void
reset()
Resets the actor.String
runsTipText()
Returns the tip text for this property.void
setFolds(int value)
Sets the number of folds.void
setGenerator(CrossValidationFoldGenerator value)
Sets the scheme for generating the folds.void
setNumThreads(int value)
Sets the number of threads to use for cross-validation.void
setRuns(int value)
Sets the number of runs to perform.String
setUp()
Initializes the item for flow execution.void
setUseViews(boolean value)
Sets whether to use views instead of dataset copies, in order to conserve memory.void
stopExecution()
Stops the execution.String
useViewsTipText()
Returns the tip text for this property.void
wrapUp()
Cleans up after the execution has finished.-
Methods inherited from class adams.flow.transformer.AbstractCallableWekaClassifierEvaluator
discardPredictionsTipText, getClassifier, getClassifierInstance, getDiscardPredictions, setClassifier, setDiscardPredictions
-
Methods inherited from class adams.flow.transformer.AbstractWekaClassifierEvaluator
alwaysUseContainerTipText, cleanOutputBuffer, getAlwaysUseContainer, getOutput, initOutputBuffer, setAlwaysUseContainer, setOutput
-
Methods inherited from class adams.flow.transformer.AbstractTransformer
backupState, currentInput, execute, hasInput, hasPendingOutput, input, output, postExecute, restoreState
-
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, preExecute, pruneBackup, pruneBackup, setAnnotations, setErrorHandler, setName, setParent, setSilent, setSkip, setStopFlowOnError, 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 class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface adams.flow.core.Actor
cleanUp, compareTo, destroy, equals, 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, setVariables, shallowCopy, shallowCopy, sizeOf, stopExecution, toCommandLine, variableChanged
-
-
-
-
Field Detail
-
m_Runs
protected int m_Runs
the number of runs to perform.
-
m_Folds
protected int m_Folds
the number of folds.
-
m_NumThreads
protected int m_NumThreads
the number of threads to use for parallel execution.
-
m_UseViews
protected boolean m_UseViews
whether to use views.
-
m_Generator
protected CrossValidationFoldGenerator m_Generator
the fold generator.
-
m_CrossValidation
protected WekaCrossValidationExecution m_CrossValidation
for performing cross-validation.
-
m_JobRunnerSetup
protected transient adams.flow.standalone.JobRunnerSetup m_JobRunnerSetup
the jobrunner setup.
-
-
Method Detail
-
globalInfo
public String globalInfo()
Returns a string describing the object.- Specified by:
globalInfo
in interfaceadams.core.GlobalInfoSupporter
- Specified by:
globalInfo
in classadams.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 interfaceadams.core.option.OptionHandler
- Overrides:
defineOptions
in classAbstractCallableWekaClassifierEvaluator
-
reset
protected void reset()
Resets the actor.- Overrides:
reset
in classAbstractWekaClassifierEvaluator
-
getQuickInfo
public String getQuickInfo()
Returns a quick info about the actor, which will be displayed in the GUI.- Specified by:
getQuickInfo
in interfaceadams.flow.core.Actor
- Specified by:
getQuickInfo
in interfaceadams.core.QuickInfoSupporter
- Overrides:
getQuickInfo
in classAbstractCallableWekaClassifierEvaluator
- Returns:
- null if no info available, otherwise short string
-
classifierTipText
public String classifierTipText()
Returns the tip text for this property.- Specified by:
classifierTipText
in classAbstractCallableWekaClassifierEvaluator
- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
outputTipText
public String outputTipText()
Returns the tip text for this property.- Overrides:
outputTipText
in classAbstractWekaClassifierEvaluator
- 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.- Parameters:
value
- the folds, -1 for LOOCV
-
getFolds
public int getFolds()
Returns the number of folds.- Returns:
- the folds
-
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.
-
setRuns
public void setRuns(int value)
Sets the number of runs to perform.- Parameters:
value
- the runs
-
getRuns
public int getRuns()
Returns the number of runs to perform.- Returns:
- the runs
-
runsTipText
public String runsTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setNumThreads
public void setNumThreads(int value)
Sets the number of threads to use for cross-validation.- Specified by:
setNumThreads
in interfaceadams.core.ThreadLimiter
- Parameters:
value
- the number of threads: -1 = # of CPUs/cores; 0/1 = sequential execution
-
getNumThreads
public int getNumThreads()
Returns the number of threads to use for cross-validation.- Specified by:
getNumThreads
in interfaceadams.core.ThreadLimiter
- Returns:
- the number of threads: -1 = # of CPUs/cores; 0/1 = sequential execution
-
numThreadsTipText
public String numThreadsTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setUseViews
public void setUseViews(boolean value)
Sets whether to use views instead of dataset copies, in order to conserve memory.- Specified by:
setUseViews
in interfaceInstancesViewSupporter
- Parameters:
value
- true if to use views
-
getUseViews
public boolean getUseViews()
Returns whether to use views instead of dataset copies, in order to conserve memory.- Specified by:
getUseViews
in interfaceInstancesViewSupporter
- Returns:
- true if using views
-
useViewsTipText
public String useViewsTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setGenerator
public void setGenerator(CrossValidationFoldGenerator value)
Sets the scheme for generating the folds.- Parameters:
value
- the generator
-
getGenerator
public CrossValidationFoldGenerator getGenerator()
Returns the scheme for generating the folds.- 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.
-
accepts
public Class[] accepts()
Returns the class that the consumer accepts.- Specified by:
accepts
in interfaceadams.flow.core.InputConsumer
- Returns:
- weka.core.Instances.class
-
generates
public Class[] generates()
Returns the class of objects that it generates.- Specified by:
generates
in interfaceadams.flow.core.OutputProducer
- Overrides:
generates
in classAbstractWekaClassifierEvaluator
- Returns:
- the output that it generates
-
setUp
public String setUp()
Initializes the item for flow execution.- Specified by:
setUp
in interfaceadams.flow.core.Actor
- Overrides:
setUp
in classAbstractCallableWekaClassifierEvaluator
- Returns:
- null if everything is fine, otherwise error message
-
doExecute
protected String doExecute()
Executes the flow item.- Specified by:
doExecute
in classadams.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 interfaceadams.flow.core.Actor
- Specified by:
stopExecution
in interfaceadams.core.Stoppable
- Overrides:
stopExecution
in classadams.flow.core.AbstractActor
-
wrapUp
public void wrapUp()
Cleans up after the execution has finished.- Specified by:
wrapUp
in interfaceadams.flow.core.Actor
- Overrides:
wrapUp
in classAbstractWekaClassifierEvaluator
-
-