Package adams.flow.sink
Class MOAClusterVisualization
- java.lang.Object
-
- adams.core.logging.LoggingObject
-
- adams.core.logging.CustomLoggingLevelObject
-
- adams.core.option.AbstractOptionHandler
-
- adams.flow.core.AbstractActor
-
- adams.flow.core.AbstractDisplay
-
- adams.flow.sink.AbstractDisplay
-
- adams.flow.sink.AbstractGraphicalDisplay
-
- adams.flow.sink.MOAClusterVisualization
-
- 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.VariablesInspectionHandler,adams.event.VariableChangeListener,adams.flow.core.Actor,adams.flow.core.ClearableDisplay,adams.flow.core.DisplayTypeSupporter,adams.flow.core.ErrorHandler,adams.flow.core.FlowControlSubMenuSupporter,adams.flow.core.HeadlessExecutionSupporter,adams.flow.core.InputConsumer,adams.flow.sink.ComponentSupplier,adams.gui.core.MenuBarProvider,adams.gui.sendto.SendToActionSupporter,Serializable,Comparable
public class MOAClusterVisualization extends adams.flow.sink.AbstractGraphicalDisplayVisualizes MOA clusters.
Input/output:
- accepts:
com.yahoo.labs.samoa.instances.Instance
com.yahoo.labs.samoa.instances.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: MOAClusterVisualization
-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
-short-title <boolean> (property: shortTitle) If enabled uses just the name for the title instead of the actor's full name. default: false
-display-in-editor <boolean> (property: displayInEditor) If enabled displays the panel in a tab in the flow editor rather than in a separate frame. default: false
-width <int> (property: width) The width of the dialog. default: 800 minimum: -1
-height <int> (property: height) The height of the dialog. default: 600 minimum: -1
-x <int> (property: x) The X position of the dialog (>=0: absolute, -1: left, -2: center, -3: right ). default: -1 minimum: -3
-y <int> (property: y) The Y position of the dialog (>=0: absolute, -1: top, -2: center, -3: bottom ). default: -1 minimum: -3
-writer <adams.gui.print.JComponentWriter> (property: writer) The writer to use for generating the graphics output. default: adams.gui.print.NullWriter
-clusterer <adams.flow.core.CallableActorReference> (property: clusterer) The name of the callable MOA clusterer to visualize. default: MOAClustererSetup
-measure <adams.core.base.BaseMeasureCollection> [-measure ...] (property: measures) The measures to collect. default:
-decay-horizon <int> (property: decayHorizon) The size of the decay horizon in data points (= sliding window). default: 1000 minimum: 1
-process-frequency <int> (property: processFrequency) The amount of instances to process in one step. default: 1000 minimum: 1
-redraw-interval <int> (property: redrawInterval) After how many instances do we repaint. default: 100 minimum: 1
-draw-points <boolean> (property: drawPoints) Whether to draw the points. default: true
-draw-ground-truth <boolean> (property: drawGroundTruth) Whether to draw the ground truth. default: true
-draw-micro-clustering <boolean> (property: drawMicroClustering) Whether to draw the micro clustering. default: true
-draw-clustering <boolean> (property: drawClustering) Whether to draw the clustering. default: true
- Version:
- $Revision$
- Author:
- Jansen [email protected] (original MOA code), FracPete (fracpete at waikato dot ac dot nz)
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected moa.clusterers.AbstractClustererm_ActualClustererthe cluster algorithm to use.protected moa.evaluation.MeasureCollection[]m_ActualMeasuresthe measure collections contain all the measuresprotected adams.flow.core.CallableActorReferencem_Clustererthe name of the callable clusterer to use.protected adams.gui.core.BaseComboBox<String>m_ComboBoxDimXthe combobox for the X dimension.protected adams.gui.core.BaseComboBox<String>m_ComboBoxDimYthe combobox for the Y dimension.protected intm_DecayHorizonamount of relevant instances; older instances will be dropped; creates the 'sliding window' over the stream; is strongly connected to the decay rate and decay thresholdprotected doublem_DecayRatethe decay rate of the stream, often reffered to as lambda; is being calculated from the horizion and the threshold as these are more intuitive to defineprotected doublem_DecayThresholdthe decay threshold defines the minimum weight of an instance to be relevantprotected booleanm_DrawClusteringwhether to draw the clustering.protected booleanm_DrawGroundTruthwhether to draw the ground truth.protected booleanm_DrawMicroClusteringwhether to draw the micro clustering.protected booleanm_DrawPointswhether to draw the points.protected moa.gui.visualization.GraphCanvasm_Graphcanvaspanel to hold the graphprotected moa.cluster.Clusteringm_gtClusteringall possible clusteringsprotected adams.gui.dialog.TextPanelm_LogPanelfor outputting textual stats.protected moa.cluster.Clusteringm_Macroprotected BaseMeasureCollection[]m_Measuresthe measures to use.protected moa.cluster.Clusteringm_Microprotected ArrayList<moa.gui.visualization.DataPoint>m_PointArraythe array of points to process.protected LinkedList<moa.gui.visualization.DataPoint>m_PointBufferthe buffer for the data points.protected intm_ProcessCounterthe process counter.protected intm_ProcessFrequencyamount of instances to process in one stepprotected intm_RedrawIntervalafter how many instances do we repaint the streampanel?protected intm_SpeedCounterthe speed counter.protected moa.gui.visualization.StreamPanelm_StreamPanelstream panel that datapoints and clusterings will be drawn toprotected intm_Timestampthe timestamp for the data.-
Fields inherited from class adams.flow.sink.AbstractGraphicalDisplay
m_GraphicFileChooser, m_MenuBar, m_MenuItemFileClear, m_MenuItemFileClose, m_MenuItemFileSaveAs, m_MenuItemFileSaveTextAs, m_MenuItemFlowPauseResume, m_MenuItemFlowStop, m_ShowFlowControlSubMenu, m_TextFileChooser, m_Writer
-
Fields inherited from class adams.flow.core.AbstractDisplay
BACKUP_INPUT, m_CreateFrame, m_DisplayType, m_Frame, m_Height, m_InputToken, m_KeepOpen, m_Panel, m_ResetGUIWaiting, m_ShortTitle, m_Updating, m_Width, m_X, m_Y
-
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 MOAClusterVisualization()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Class[]accepts()Returns the class that the consumer accepts.voidclearPanel()Clears the content of the panel.StringclustererTipText()Returns the tip text for this property.StringdecayHorizonTipText()Returns the tip text for this property.voiddefineOptions()Adds options to the internal list of options.protected voiddisplay(adams.flow.core.Token token)Displays the token (the panel and dialog have already been created at this stage).protected voiddrawClusterings(List<moa.gui.visualization.DataPoint> points)Draws the clusterings.StringdrawClusteringTipText()Returns the tip text for this property.StringdrawGroundTruthTipText()Returns the tip text for this property.StringdrawMicroClusteringTipText()Returns the tip text for this property.StringdrawPointsTipText()Returns the tip text for this property.protected voidevaluateClustering(moa.cluster.Clustering found_clustering, moa.cluster.Clustering trueClustering, ArrayList<moa.gui.visualization.DataPoint> points, boolean algorithm)Evaluates the clustering.adams.flow.core.CallableActorReferencegetClusterer()Returns the callable clusterer to use.protected moa.clusterers.AbstractClusterergetClustererInstance()Returns an instance of the callable clusterer.intgetDecayHorizon()Returns the size of the decay horizon.booleangetDrawClustering()Returns whether to draw the clustering.booleangetDrawGroundTruth()Returns whether to draw the ground truth.booleangetDrawMicroClustering()Returns whether to draw the micro clustering.booleangetDrawPoints()Returns whether to draw the points.BaseMeasureCollection[]getMeasures()Returns the measures to collect.intgetProcessFrequency()Returns the amount of instances to process in one step.StringgetQuickInfo()Returns a quick info about the actor, which will be displayed in the GUI.intgetRedrawInterval()Returns after how many instances do we repaint.StringglobalInfo()Returns a string describing the object.StringmeasuresTipText()Returns the tip text for this property.protected adams.gui.core.BasePanelnewPanel()Creates the panel to display in the dialog.protected voidprocessClusterings(ArrayList<moa.gui.visualization.DataPoint> points)Processes the clusterings and initiates the drawing.StringprocessFrequencyTipText()Returns the tip text for this property.StringredrawIntervalTipText()Returns the tip text for this property.protected voidreset()Resets the object.voidsetClusterer(adams.flow.core.CallableActorReference value)Sets the callable clusterer to use.voidsetDecayHorizon(int value)Sets the size of the decay horizon.voidsetDrawClustering(boolean value)Sets whether to draw the clustering.voidsetDrawGroundTruth(boolean value)Sets whether to draw the ground truth.voidsetDrawMicroClustering(boolean value)Sets whether to draw the micro clustering.voidsetDrawPoints(boolean value)Sets whether to draw the points.voidsetMeasures(BaseMeasureCollection[] value)Sets the measures to collect.voidsetProcessFrequency(int value)Sets the amount of instances to process in one step.voidsetRedrawInterval(int value)Sets after how many instances do we repaint.-
Methods inherited from class adams.flow.sink.AbstractGraphicalDisplay
canPauseOrResume, cleanUpGUI, clear, close, createMenuBar, getGraphicFileChooser, getMenuBar, getSendToClasses, getSendToItem, getShowFlowControlSubMenu, getTextFileChooser, getWriter, hasPanel, hasSendToItem, isPaused, pauseResumeFlow, saveAs, saveTextAs, setShowFlowControlSubMenu, setWriter, showFlowControlSubMenuTipText, stopFlow, supplyComponent, supportsClear, updateMenu, wrapUp, writerTipText
-
Methods inherited from class adams.flow.sink.AbstractDisplay
newDisplayRunnable, postDisplay, preDisplay
-
Methods inherited from class adams.flow.core.AbstractDisplay
backupState, cleanUp, cleanUpGUIKeepOpen, closeDisplay, createFrame, createTitle, currentInput, deregisterInWrapUp, deregisterWindow, deregisterWithEditor, displayTypeTipText, doCreateFrame, doExecute, doExecuteHeadless, getCreateFrame, getDefaultDisplayType, getDefaultHeight, getDefaultShortTitle, getDefaultWidth, getDefaultX, getDefaultY, getDisplayType, getFrame, getFrameDefaultCloseOperation, getHeight, getKeepOpen, getPanel, getShortTitle, getWidth, getX, getY, hasInput, heightTipText, initialize, input, postCreateFrame, preCreateFrame, registerWindow, registerWithEditor, restoreState, setCreateFrame, setDisplayType, setHeight, setKeepOpen, setShortTitle, setWidth, setX, setY, shortTitleTipText, stopExecution, supportsHeadlessExecution, widthTipText, xTipText, yTipText
-
Methods inherited from class adams.flow.core.AbstractActor
annotationsTipText, canInspectOptions, canPerformSetUpCheck, compareTo, configureLogger, destroy, equals, execute, 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, postExecute, preExecute, pruneBackup, 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 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
-
-
-
-
Field Detail
-
m_Clusterer
protected adams.flow.core.CallableActorReference m_Clusterer
the name of the callable clusterer to use.
-
m_Measures
protected BaseMeasureCollection[] m_Measures
the measures to use.
-
m_ActualMeasures
protected moa.evaluation.MeasureCollection[] m_ActualMeasures
the measure collections contain all the measures
-
m_DecayHorizon
protected int m_DecayHorizon
amount of relevant instances; older instances will be dropped; creates the 'sliding window' over the stream; is strongly connected to the decay rate and decay threshold
-
m_DecayThreshold
protected double m_DecayThreshold
the decay threshold defines the minimum weight of an instance to be relevant
-
m_DrawPoints
protected boolean m_DrawPoints
whether to draw the points.
-
m_DrawGroundTruth
protected boolean m_DrawGroundTruth
whether to draw the ground truth.
-
m_DrawMicroClustering
protected boolean m_DrawMicroClustering
whether to draw the micro clustering.
-
m_DrawClustering
protected boolean m_DrawClustering
whether to draw the clustering.
-
m_ProcessFrequency
protected int m_ProcessFrequency
amount of instances to process in one step
-
m_RedrawInterval
protected int m_RedrawInterval
after how many instances do we repaint the streampanel? the GUI becomes very slow with small values.
-
m_StreamPanel
protected moa.gui.visualization.StreamPanel m_StreamPanel
stream panel that datapoints and clusterings will be drawn to
-
m_ActualClusterer
protected moa.clusterers.AbstractClusterer m_ActualClusterer
the cluster algorithm to use.
-
m_DecayRate
protected double m_DecayRate
the decay rate of the stream, often reffered to as lambda; is being calculated from the horizion and the threshold as these are more intuitive to define
-
m_gtClustering
protected moa.cluster.Clustering m_gtClustering
all possible clusterings
-
m_Macro
protected moa.cluster.Clustering m_Macro
-
m_Micro
protected moa.cluster.Clustering m_Micro
-
m_Graphcanvas
protected moa.gui.visualization.GraphCanvas m_Graphcanvas
panel to hold the graph
-
m_LogPanel
protected adams.gui.dialog.TextPanel m_LogPanel
for outputting textual stats.
-
m_PointBuffer
protected LinkedList<moa.gui.visualization.DataPoint> m_PointBuffer
the buffer for the data points.
-
m_PointArray
protected ArrayList<moa.gui.visualization.DataPoint> m_PointArray
the array of points to process.
-
m_Timestamp
protected int m_Timestamp
the timestamp for the data.
-
m_ProcessCounter
protected int m_ProcessCounter
the process counter.
-
m_SpeedCounter
protected int m_SpeedCounter
the speed counter.
-
m_ComboBoxDimX
protected adams.gui.core.BaseComboBox<String> m_ComboBoxDimX
the combobox for the X dimension.
-
m_ComboBoxDimY
protected adams.gui.core.BaseComboBox<String> m_ComboBoxDimY
the combobox for the Y dimension.
-
-
Method Detail
-
globalInfo
public String globalInfo()
Returns a string describing the object.- Specified by:
globalInfoin interfaceadams.core.GlobalInfoSupporter- Specified by:
globalInfoin classadams.core.option.AbstractOptionHandler- Returns:
- a description suitable for displaying in the gui
-
reset
protected void reset()
Resets the object. Removes graphical components as well.- Overrides:
resetin classadams.flow.core.AbstractDisplay
-
defineOptions
public void defineOptions()
Adds options to the internal list of options.- Specified by:
defineOptionsin interfaceadams.core.option.OptionHandler- Overrides:
defineOptionsin classadams.flow.sink.AbstractGraphicalDisplay
-
setClusterer
public void setClusterer(adams.flow.core.CallableActorReference value)
Sets the callable clusterer to use.- Parameters:
value- the clusterer name
-
getClusterer
public adams.flow.core.CallableActorReference getClusterer()
Returns the callable clusterer to use.- Returns:
- the clusterer name
-
clustererTipText
public String clustererTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setDecayHorizon
public void setDecayHorizon(int value)
Sets the size of the decay horizon.- Parameters:
value- the size in data points
-
getDecayHorizon
public int getDecayHorizon()
Returns the size of the decay horizon.- Returns:
- the size in data points
-
decayHorizonTipText
public String decayHorizonTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setProcessFrequency
public void setProcessFrequency(int value)
Sets the amount of instances to process in one step.- Parameters:
value- the number of instances
-
getProcessFrequency
public int getProcessFrequency()
Returns the amount of instances to process in one step.- Returns:
- the number of instances
-
processFrequencyTipText
public String processFrequencyTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setRedrawInterval
public void setRedrawInterval(int value)
Sets after how many instances do we repaint.- Parameters:
value- the number of instances
-
getRedrawInterval
public int getRedrawInterval()
Returns after how many instances do we repaint.- Returns:
- the number of instances
-
redrawIntervalTipText
public String redrawIntervalTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setDrawPoints
public void setDrawPoints(boolean value)
Sets whether to draw the points.- Parameters:
value- true if to draw
-
getDrawPoints
public boolean getDrawPoints()
Returns whether to draw the points.- Returns:
- true if to draw
-
drawPointsTipText
public String drawPointsTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setDrawGroundTruth
public void setDrawGroundTruth(boolean value)
Sets whether to draw the ground truth.- Parameters:
value- true if to draw
-
getDrawGroundTruth
public boolean getDrawGroundTruth()
Returns whether to draw the ground truth.- Returns:
- true if to draw
-
drawGroundTruthTipText
public String drawGroundTruthTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setDrawMicroClustering
public void setDrawMicroClustering(boolean value)
Sets whether to draw the micro clustering.- Parameters:
value- true if to draw
-
getDrawMicroClustering
public boolean getDrawMicroClustering()
Returns whether to draw the micro clustering.- Returns:
- true if to draw
-
drawMicroClusteringTipText
public String drawMicroClusteringTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setDrawClustering
public void setDrawClustering(boolean value)
Sets whether to draw the clustering.- Parameters:
value- true if to draw
-
getDrawClustering
public boolean getDrawClustering()
Returns whether to draw the clustering.- Returns:
- true if to draw
-
drawClusteringTipText
public String drawClusteringTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setMeasures
public void setMeasures(BaseMeasureCollection[] value)
Sets the measures to collect.- Parameters:
value- the measures
-
getMeasures
public BaseMeasureCollection[] getMeasures()
Returns the measures to collect.- Returns:
- the measures
-
measuresTipText
public String measuresTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
getQuickInfo
public String getQuickInfo()
Returns a quick info about the actor, which will be displayed in the GUI.- Specified by:
getQuickInfoin interfaceadams.flow.core.Actor- Specified by:
getQuickInfoin interfaceadams.core.QuickInfoSupporter- Overrides:
getQuickInfoin classadams.flow.core.AbstractDisplay- Returns:
- null if no info available, otherwise short string
-
accepts
public Class[] accepts()
Returns the class that the consumer accepts.- Returns:
- the Class of objects that can be processed
-
getClustererInstance
protected moa.clusterers.AbstractClusterer getClustererInstance()
Returns an instance of the callable clusterer.- Returns:
- the clusterer
-
drawClusterings
protected void drawClusterings(List<moa.gui.visualization.DataPoint> points)
Draws the clusterings.- Parameters:
points- the points to draw
-
evaluateClustering
protected void evaluateClustering(moa.cluster.Clustering found_clustering, moa.cluster.Clustering trueClustering, ArrayList<moa.gui.visualization.DataPoint> points, boolean algorithm)Evaluates the clustering.- Parameters:
found_clustering-trueClustering-points-algorithm-
-
processClusterings
protected void processClusterings(ArrayList<moa.gui.visualization.DataPoint> points)
Processes the clusterings and initiates the drawing.- Parameters:
points- the data points
-
display
protected void display(adams.flow.core.Token token)
Displays the token (the panel and dialog have already been created at this stage).- Specified by:
displayin classadams.flow.sink.AbstractDisplay- Parameters:
token- the token to display
-
clearPanel
public void clearPanel()
Clears the content of the panel.- Specified by:
clearPanelin classadams.flow.core.AbstractDisplay
-
newPanel
protected adams.gui.core.BasePanel newPanel()
Creates the panel to display in the dialog.- Specified by:
newPanelin classadams.flow.core.AbstractDisplay- Returns:
- the panel
-
-