Package adams.flow.transformer
Class WekaChooseAttributes
-
- All Implemented Interfaces:
AdditionalInformationHandler
,CleanUpHandler
,Destroyable
,GlobalInfoSupporter
,LoggingLevelHandler
,LoggingSupporter
,OptionHandler
,QuickInfoSupporter
,ShallowCopySupporter<Actor>
,SizeOfHandler
,Stoppable
,StoppableWithFeedback
,VariablesInspectionHandler
,VariableChangeListener
,Actor
,AutomatableInteraction
,AutomatableInteractiveActor
,ErrorHandler
,InputConsumer
,InteractiveActor
,InteractiveActorWithCustomParentComponent
,OutputProducer
,StopModeSupporter
,Serializable
,Comparable
public class WekaChooseAttributes extends AbstractInteractiveTransformer implements AutomatableInteractiveActor
Lets the user select attributes interactively to use down the track.
Internally, a weka.filters.unsupervised.attribute.Remove WEKA filter is constructed from the selection, to remove the attributes that the user didn't select.
Input/output:
- accepts:
weka.core.Instances
- generates:
weka.core.Instances
-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: WekaChooseAttributes
-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 gets stopped in case this actor encounters an error; useful for critical actors. default: false
-silent <boolean> (property: silent) If enabled, then no errors are output in the console. default: false
-stop-if-canceled <boolean> (property: stopFlowIfCanceled) If enabled, the flow gets stopped in case the user cancels the dialog. default: false
-custom-stop-message <java.lang.String> (property: customStopMessage) The custom stop message to use in case a user cancelation stops the flow (default is the full name of the actor) default:
-message <java.lang.String> (property: message) The message to display to the user (variables get expanded). default: Choose attributes to use
-pre-selection <adams.core.base.BaseRegExp> (property: preSelection) The regular expression to use for pre-selecting attributes. default: .*
-non-interactive <boolean> (property: nonInteractive) If enabled, attributes that match the 'pre-selection' pattern get selected automatically. default: false
- Author:
- fracpete (fracpete at waikato dot ac dot nz)
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected String
m_Message
the message to display to the user.protected boolean
m_NonInteractive
whether to automate the actor.protected BaseRegExp
m_PreSelection
the regular expression for pre-selecting attributes by name.protected weka.filters.unsupervised.attribute.Remove
m_Remove
the Remove filter in use.-
Fields inherited from class adams.flow.transformer.AbstractInteractiveTransformer
m_CallableActor, m_CustomStopMessage, m_Helper, m_ParentComponentActor, m_ParentComponentActorConfigured, m_StopFlowIfCanceled, m_StopMode, m_UseOuterWindow
-
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
-
Fields inherited from interface adams.flow.core.InteractiveActor
INTERACTION_CANCELED
-
-
Constructor Summary
Constructors Constructor Description WekaChooseAttributes()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Class[]
accepts()
Returns the class that the consumer accepts.void
defineOptions()
Adds options to the internal list of options.protected String
doExecute()
Executes the flow item.String
doInteract()
Performs the interaction with the user.protected weka.core.Instances
filter(weka.core.Instances inst, List<Integer> selected)
Filters the data.protected boolean
generateOutput(weka.core.Instances inst, List<Integer> selected)
Creates the output token with the subset of data.Class[]
generates()
Returns the class of objects that it generates.String
getMessage()
Returns the message to display to the user (variables get expanded).protected List<Integer>
getPreSelectedIndices(weka.core.Instances inst)
Returns the pre-selected indices.String
getQuickInfo()
Returns a quick info about the actor, which will be displayed in the GUI.String
globalInfo()
Returns a string describing the object.protected void
initialize()
Initializes the members.boolean
isNonInteractive()
Returns whether interactiveness is enabled/disabled.BaseRegExp
isPreSelection()
Returns the regular expression to pre-select attributes for the dialog.String
messageTipText()
Returns the tip text for this property.String
nonInteractiveTipText()
Returns the tip text for this property.String
preSelectionTipText()
Returns the tip text for this property.protected List<Integer>
selectAttributes(weka.core.Instances inst, List<Integer> preSelected)
Prompts the user to select attributes.void
setMessage(String value)
Sets the message to display to the user (variables get expanded).void
setNonInteractive(boolean value)
Sets whether to enable/disable interactiveness.void
setPreSelection(BaseRegExp value)
Sets the regular expression to pre-select attributes for the dialog.-
Methods inherited from class adams.flow.transformer.AbstractInteractiveTransformer
customStopMessageTipText, deregisterWindow, doInteractHeadless, findCallableActor, getActualParentComponent, getCustomStopMessage, getParentComponentActor, getStopFlowIfCanceled, getStopMode, getUseOuterWindow, parentComponentActorTipText, registerWindow, reset, setCustomStopMessage, setParentComponentActor, setStopFlowIfCanceled, setStopMode, setUseOuterWindow, stopFlowIfCanceledTipText, stopModeTipText, supportsHeadlessInteraction, useOuterWindowTipText
-
Methods inherited from class adams.flow.transformer.AbstractTransformer
backupState, currentInput, execute, hasInput, hasPendingOutput, input, output, postExecute, restoreState, wrapUp
-
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, isBackedUp, isExecuted, isExecuting, isFinished, isHeadless, isStopped, nameTipText, performSetUpChecks, performVariableChecks, preExecute, pruneBackup, pruneBackup, setAnnotations, setErrorHandler, setName, setParent, setSilent, setSkip, setStopFlowOnError, setUp, setVariables, shallowCopy, shallowCopy, silentTipText, sizeOf, skipTipText, stopExecution, 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, 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, stopExecution, toCommandLine, variableChanged, wrapUp
-
Methods inherited from interface adams.core.AdditionalInformationHandler
getAdditionalInformation
-
Methods inherited from interface adams.flow.core.InteractiveActor
customStopMessageTipText, doInteractHeadless, getCustomStopMessage, getStopFlowIfCanceled, setCustomStopMessage, setStopFlowIfCanceled, stopFlowIfCanceledTipText, supportsHeadlessInteraction
-
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.flow.core.StopModeSupporter
getStopMode, setStopMode, stopModeTipText
-
Methods inherited from interface adams.core.VariablesInspectionHandler
canInspectOptions
-
-
-
-
Field Detail
-
m_Message
protected String m_Message
the message to display to the user.
-
m_PreSelection
protected BaseRegExp m_PreSelection
the regular expression for pre-selecting attributes by name.
-
m_NonInteractive
protected boolean m_NonInteractive
whether to automate the actor.
-
m_Remove
protected weka.filters.unsupervised.attribute.Remove m_Remove
the Remove filter in use.
-
-
Method Detail
-
globalInfo
public String globalInfo()
Returns a string describing the object.- Specified by:
globalInfo
in interfaceGlobalInfoSupporter
- Specified by:
globalInfo
in classAbstractOptionHandler
- 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 interfaceOptionHandler
- Overrides:
defineOptions
in classAbstractInteractiveTransformer
-
initialize
protected void initialize()
Initializes the members.- Overrides:
initialize
in classAbstractInteractiveTransformer
-
getQuickInfo
public String getQuickInfo()
Returns a quick info about the actor, which will be displayed in the GUI.- Specified by:
getQuickInfo
in interfaceActor
- Specified by:
getQuickInfo
in interfaceQuickInfoSupporter
- Overrides:
getQuickInfo
in classAbstractActor
- Returns:
- null if no info available, otherwise short string
-
setMessage
public void setMessage(String value)
Sets the message to display to the user (variables get expanded).- Parameters:
value
- the message
-
getMessage
public String getMessage()
Returns the message to display to the user (variables get expanded).- Returns:
- the message
-
messageTipText
public String messageTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setPreSelection
public void setPreSelection(BaseRegExp value)
Sets the regular expression to pre-select attributes for the dialog.- Parameters:
value
- the expression
-
isPreSelection
public BaseRegExp isPreSelection()
Returns the regular expression to pre-select attributes for the dialog.- Returns:
- the expression
-
preSelectionTipText
public String preSelectionTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setNonInteractive
public void setNonInteractive(boolean value)
Sets whether to enable/disable interactiveness.- Specified by:
setNonInteractive
in interfaceAutomatableInteraction
- Specified by:
setNonInteractive
in interfaceAutomatableInteractiveActor
- Parameters:
value
- if true actor is not interactive, but automated
-
isNonInteractive
public boolean isNonInteractive()
Returns whether interactiveness is enabled/disabled.- Specified by:
isNonInteractive
in interfaceAutomatableInteraction
- Specified by:
isNonInteractive
in interfaceAutomatableInteractiveActor
- Returns:
- true if actor is not interactive i.e., automated
-
nonInteractiveTipText
public String nonInteractiveTipText()
Returns the tip text for this property.- Specified by:
nonInteractiveTipText
in interfaceAutomatableInteraction
- Specified by:
nonInteractiveTipText
in interfaceAutomatableInteractiveActor
- 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 interfaceInputConsumer
- Returns:
- the Class of objects that can be processed
-
generates
public Class[] generates()
Returns the class of objects that it generates.- Specified by:
generates
in interfaceOutputProducer
- Returns:
- the Class of the generated tokens
-
selectAttributes
protected List<Integer> selectAttributes(weka.core.Instances inst, List<Integer> preSelected)
Prompts the user to select attributes.- Parameters:
inst
- the data to presentpreSelected
- the indices of the attributes to use by default- Returns:
- the list of selected attributes to keep, null if cancelled
-
getPreSelectedIndices
protected List<Integer> getPreSelectedIndices(weka.core.Instances inst)
Returns the pre-selected indices.- Parameters:
inst
- the dataset to work on- Returns:
- the indices
-
filter
protected weka.core.Instances filter(weka.core.Instances inst, List<Integer> selected) throws Exception
Filters the data.- Parameters:
inst
- the data to filterselected
- the selected attributes- Returns:
- the new dataset
- Throws:
Exception
- in case filtering fails
-
generateOutput
protected boolean generateOutput(weka.core.Instances inst, List<Integer> selected)
Creates the output token with the subset of data.- Parameters:
inst
- the instances to processselected
- the indices to select- Returns:
- true if successfully generated
-
doInteract
public String doInteract()
Performs the interaction with the user.- Specified by:
doInteract
in interfaceInteractiveActor
- Specified by:
doInteract
in classAbstractInteractiveTransformer
- Returns:
- null if successfully interacted, otherwise error message
-
doExecute
protected String doExecute()
Executes the flow item.- Overrides:
doExecute
in classAbstractInteractiveTransformer
- Returns:
- null if everything is fine, otherwise error message
-
-