Package adams.flow.transformer
Class WekaInstancesInfo
- 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.AbstractArrayProvider
-
- adams.flow.transformer.WekaInstancesInfo
-
- 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.ShallowCopySupporter<adams.flow.core.Actor>
,adams.core.SizeOfHandler
,adams.core.Stoppable
,adams.core.StoppableWithFeedback
,adams.core.VariablesInspectionHandler
,adams.event.VariableChangeListener
,adams.flow.core.Actor
,adams.flow.core.ArrayProvider
,adams.flow.core.DataInfoActor
,adams.flow.core.ErrorHandler
,adams.flow.core.InputConsumer
,adams.flow.core.OutputProducer
,Serializable
,Comparable
public class WekaInstancesInfo extends adams.flow.transformer.AbstractArrayProvider implements adams.flow.core.DataInfoActor
Outputs statistics of a weka.core.Instances object.
FULL_ATTRIBUTE and FULL_CLASS output a spreadsheet with detailed attribute statistics. All others output either strings, integers or doubles (or arrays of them, in case of counts/distribution).
Input/output:
- accepts:
weka.core.Instances
weka.core.Instance
- generates:
java.lang.String
-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: WekaInstancesInfo
-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) Whether to output the values one-by-one or as array (counts or distributions are always output as array). default: false
-type <FULL|FULL_ATTRIBUTE|FULL_CLASS|HEADER|RELATION_NAME|NUM_ATTRIBUTES|NUM_INSTANCES|NUM_CLASS_LABELS|ATTRIBUTE_NAME|ATTRIBUTE_NAMES|CLASS_ATTRIBUTE_NAME|LABELS|CLASS_LABELS|NUM_LABELS|NUM_MISSING_VALUES|NUM_DISTINCT_VALUES|NUM_UNIQUE_VALUES|LABEL_COUNT|CLASS_LABEL_COUNT|LABEL_COUNTS|CLASS_LABEL_COUNTS|LABEL_DISTRIBUTION|CLASS_LABEL_DISTRIBUTION|MIN|MAX|MEAN|STDEV|ATTRIBUTE_TYPE|CLASS_TYPE> (property: type) The type of information to generate; NB some of the types are only available for numeric or nominal attributes. default: FULL
-attribute-index <adams.data.weka.WekaAttributeIndex> (property: attributeIndex) The attribute index to use for generating attribute-specific information; An index is a number starting with 1; apart from attribute names (case-sensitive ), the following placeholders can be used as well: first, second, third, last_2, last_1, last; numeric indices can be enforced by preceding them with '#' (eg '#12'); attribute names can be surrounded by double quotes. default: last example: An index is a number starting with 1; apart from attribute names (case-sensitive), the following placeholders can be used as well: first, second, third, last_2, last_1, last; numeric indices can be enforced by preceding them with '#' (eg '#12'); attribute names can be surrounded by double quotes.
-label-index <adams.data.weka.WekaLabelIndex> (property: labelIndex) The index of the label to use; An index is a number starting with 1; apart from label names (case-sensitive), the following placeholders can be used as well: first, second, third, last_2, last_1, last; numeric indices can be enforced by preceding them with '#' (eg '#12'); label names can be surrounded by double quotes. default: first example: An index is a number starting with 1; apart from label names (case-sensitive), the following placeholders can be used as well: first, second, third, last_2, last_1, last; numeric indices can be enforced by preceding them with '#' (eg '#12'); label names can be surrounded by double quotes.
- Author:
- fracpete (fracpete at waikato dot ac dot nz)
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
WekaInstancesInfo.InfoType
The type of information to generate.
-
Field Summary
Fields Modifier and Type Field Description protected WekaAttributeIndex
m_AttributeIndex
the index of the attribute to get the information for.protected adams.core.DateFormat
m_DateFormat
for formatting dates.protected WekaLabelIndex
m_LabelIndex
the index of the label.protected WekaInstancesInfo.InfoType
m_Type
the type of information to generate.-
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
-
-
Constructor Summary
Constructors Constructor Description WekaInstancesInfo()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Class[]
accepts()
Returns the class that the consumer accepts.protected void
addStatistic(adams.data.spreadsheet.SpreadSheet sheet, String name, Object value)
Adds a statistic to the dataset.String
attributeIndexTipText()
Returns the tip text for this property.void
defineOptions()
Adds options to the internal list of options.protected String
doExecute()
Executes the flow item.protected Object
formatDate(double value)
Formats date stats.WekaAttributeIndex
getAttributeIndex()
Returns the attribute index to use for attribute specific information.protected adams.data.spreadsheet.SpreadSheet
getAttributeStats(weka.core.Instances data, int index)
Generates attributes statistics.protected Class
getItemClass()
Returns the base class of the items.WekaLabelIndex
getLabelIndex()
Returns the index of the label to use.String
getQuickInfo()
Returns a quick info about the actor, which will be displayed in the GUI.WekaInstancesInfo.InfoType
getType()
Returns the type of information to generate.String
globalInfo()
Returns a string describing the object.String
labelIndexTipText()
Returns the tip text for this property.String
outputArrayTipText()
Returns the tip text for this property.void
setAttributeIndex(WekaAttributeIndex value)
Sets the attribute index to use for attribute-specific information.void
setLabelIndex(WekaLabelIndex value)
Sets the index of the label to use.void
setType(WekaInstancesInfo.InfoType value)
Sets the type of information to generate.String
typeTipText()
Returns the tip text for this property.-
Methods inherited from class adams.flow.transformer.AbstractArrayProvider
backupState, generates, getOutputArray, hasPendingOutput, output, preExecute, pruneBackup, reset, 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, 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
-
-
-
-
Field Detail
-
m_Type
protected WekaInstancesInfo.InfoType m_Type
the type of information to generate.
-
m_AttributeIndex
protected WekaAttributeIndex m_AttributeIndex
the index of the attribute to get the information for.
-
m_LabelIndex
protected WekaLabelIndex m_LabelIndex
the index of the label.
-
m_DateFormat
protected adams.core.DateFormat m_DateFormat
for formatting dates.
-
-
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 classadams.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 interfaceadams.flow.core.Actor
- Specified by:
getQuickInfo
in interfaceadams.core.QuickInfoSupporter
- Overrides:
getQuickInfo
in classadams.flow.core.AbstractActor
- Returns:
- null if no info available, otherwise short string
-
outputArrayTipText
public String outputArrayTipText()
Returns the tip text for this property.- Specified by:
outputArrayTipText
in interfaceadams.core.ArrayProvider
- Specified by:
outputArrayTipText
in interfaceadams.flow.core.ArrayProvider
- Specified by:
outputArrayTipText
in classadams.flow.transformer.AbstractArrayProvider
- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setType
public void setType(WekaInstancesInfo.InfoType value)
Sets the type of information to generate.- Parameters:
value
- the type
-
getType
public WekaInstancesInfo.InfoType getType()
Returns the type of information to generate.- Returns:
- the type
-
typeTipText
public String typeTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setAttributeIndex
public void setAttributeIndex(WekaAttributeIndex value)
Sets the attribute index to use for attribute-specific information.- Parameters:
value
- the 1-based index
-
getAttributeIndex
public WekaAttributeIndex getAttributeIndex()
Returns the attribute index to use for attribute specific information.- Returns:
- the 1-based index
-
attributeIndexTipText
public String attributeIndexTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setLabelIndex
public void setLabelIndex(WekaLabelIndex value)
Sets the index of the label to use.- Parameters:
value
- the 1-based index
-
getLabelIndex
public WekaLabelIndex getLabelIndex()
Returns the index of the label to use.- Returns:
- the 1-based index
-
labelIndexTipText
public String labelIndexTipText()
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, weka.core.Instance.class
-
getItemClass
protected Class getItemClass()
Returns the base class of the items.- Specified by:
getItemClass
in classadams.flow.transformer.AbstractArrayProvider
- Returns:
- the class
-
addStatistic
protected void addStatistic(adams.data.spreadsheet.SpreadSheet sheet, String name, Object value)
Adds a statistic to the dataset.- Parameters:
sheet
- the spreadsheet to add the data toname
- the name of the statisticvalue
- the statistic (string, double, int)
-
formatDate
protected Object formatDate(double value)
Formats date stats.- Parameters:
value
- the date (java epoch) to process- Returns:
- the (potentially) formatted value
-
getAttributeStats
protected adams.data.spreadsheet.SpreadSheet getAttributeStats(weka.core.Instances data, int index)
Generates attributes statistics.- Parameters:
data
- the dataset to useindex
- the 0-based index of the attribute
-
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
-
-