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.InputConsumer
,adams.flow.sink.ComponentSupplier
,adams.gui.core.MenuBarProvider
,adams.gui.sendto.SendToActionSupporter
,Serializable
,Comparable
public class MOAClusterVisualization extends adams.flow.sink.AbstractGraphicalDisplay
Visualizes 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.AbstractClusterer
m_ActualClusterer
the cluster algorithm to use.protected moa.evaluation.MeasureCollection[]
m_ActualMeasures
the measure collections contain all the measuresprotected adams.flow.core.CallableActorReference
m_Clusterer
the name of the callable clusterer to use.protected adams.gui.core.BaseComboBox<String>
m_ComboBoxDimX
the combobox for the X dimension.protected adams.gui.core.BaseComboBox<String>
m_ComboBoxDimY
the combobox for the Y dimension.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 thresholdprotected 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 defineprotected double
m_DecayThreshold
the decay threshold defines the minimum weight of an instance to be relevantprotected boolean
m_DrawClustering
whether to draw the clustering.protected boolean
m_DrawGroundTruth
whether to draw the ground truth.protected boolean
m_DrawMicroClustering
whether to draw the micro clustering.protected boolean
m_DrawPoints
whether to draw the points.protected moa.gui.visualization.GraphCanvas
m_Graphcanvas
panel to hold the graphprotected moa.cluster.Clustering
m_gtClustering
all possible clusteringsprotected adams.gui.dialog.TextPanel
m_LogPanel
for outputting textual stats.protected moa.cluster.Clustering
m_Macro
protected BaseMeasureCollection[]
m_Measures
the measures to use.protected moa.cluster.Clustering
m_Micro
protected ArrayList<moa.gui.visualization.DataPoint>
m_PointArray
the array of points to process.protected LinkedList<moa.gui.visualization.DataPoint>
m_PointBuffer
the buffer for the data points.protected int
m_ProcessCounter
the process counter.protected int
m_ProcessFrequency
amount of instances to process in one stepprotected int
m_RedrawInterval
after how many instances do we repaint the streampanel? the GUI becomes very slow with small values.protected int
m_SpeedCounter
the speed counter.protected moa.gui.visualization.StreamPanel
m_StreamPanel
stream panel that datapoints and clusterings will be drawn toprotected int
m_Timestamp
the 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_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.void
clearPanel()
Clears the content of the panel.String
clustererTipText()
Returns the tip text for this property.String
decayHorizonTipText()
Returns the tip text for this property.void
defineOptions()
Adds options to the internal list of options.protected void
display(adams.flow.core.Token token)
Displays the token (the panel and dialog have already been created at this stage).protected void
drawClusterings(List<moa.gui.visualization.DataPoint> points)
Draws the clusterings.String
drawClusteringTipText()
Returns the tip text for this property.String
drawGroundTruthTipText()
Returns the tip text for this property.String
drawMicroClusteringTipText()
Returns the tip text for this property.String
drawPointsTipText()
Returns the tip text for this property.protected void
evaluateClustering(moa.cluster.Clustering found_clustering, moa.cluster.Clustering trueClustering, ArrayList<moa.gui.visualization.DataPoint> points, boolean algorithm)
Evaluates the clustering.adams.flow.core.CallableActorReference
getClusterer()
Returns the callable clusterer to use.protected moa.clusterers.AbstractClusterer
getClustererInstance()
Returns an instance of the callable clusterer.int
getDecayHorizon()
Returns the size of the decay horizon.boolean
getDrawClustering()
Returns whether to draw the clustering.boolean
getDrawGroundTruth()
Returns whether to draw the ground truth.boolean
getDrawMicroClustering()
Returns whether to draw the micro clustering.boolean
getDrawPoints()
Returns whether to draw the points.BaseMeasureCollection[]
getMeasures()
Returns the measures to collect.int
getProcessFrequency()
Returns the amount of instances to process in one step.String
getQuickInfo()
Returns a quick info about the actor, which will be displayed in the GUI.int
getRedrawInterval()
Returns after how many instances do we repaint.String
globalInfo()
Returns a string describing the object.String
measuresTipText()
Returns the tip text for this property.protected adams.gui.core.BasePanel
newPanel()
Creates the panel to display in the dialog.protected void
processClusterings(ArrayList<moa.gui.visualization.DataPoint> points)
Processes the clusterings and initiates the drawing.String
processFrequencyTipText()
Returns the tip text for this property.String
redrawIntervalTipText()
Returns the tip text for this property.protected void
reset()
Resets the object.void
setClusterer(adams.flow.core.CallableActorReference value)
Sets the callable clusterer to use.void
setDecayHorizon(int value)
Sets the size of the decay horizon.void
setDrawClustering(boolean value)
Sets whether to draw the clustering.void
setDrawGroundTruth(boolean value)
Sets whether to draw the ground truth.void
setDrawMicroClustering(boolean value)
Sets whether to draw the micro clustering.void
setDrawPoints(boolean value)
Sets whether to draw the points.void
setMeasures(BaseMeasureCollection[] value)
Sets the measures to collect.void
setProcessFrequency(int value)
Sets the amount of instances to process in one step.void
setRedrawInterval(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, closeFrame, createFrame, createTitle, currentInput, deregisterInWrapUp, deregisterWindow, deregisterWithEditor, displayTypeTipText, doCreateFrame, doExecute, 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, 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:
globalInfo
in interfaceadams.core.GlobalInfoSupporter
- Specified by:
globalInfo
in 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:
reset
in classadams.flow.core.AbstractDisplay
-
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.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:
getQuickInfo
in interfaceadams.flow.core.Actor
- Specified by:
getQuickInfo
in interfaceadams.core.QuickInfoSupporter
- Overrides:
getQuickInfo
in 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:
display
in classadams.flow.sink.AbstractDisplay
- Parameters:
token
- the token to display
-
clearPanel
public void clearPanel()
Clears the content of the panel.- Specified by:
clearPanel
in classadams.flow.core.AbstractDisplay
-
newPanel
protected adams.gui.core.BasePanel newPanel()
Creates the panel to display in the dialog.- Specified by:
newPanel
in classadams.flow.core.AbstractDisplay
- Returns:
- the panel
-
-