Package weka.gui.boundaryvisualizer
Class BoundaryVisualizer
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
weka.gui.boundaryvisualizer.BoundaryVisualizer
- All Implemented Interfaces:
ImageObserver
,MenuContainer
,Serializable
,Accessible
,TechnicalInformationHandler
BoundaryVisualizer. Allows the visualization of classifier decision
boundaries in two dimensions. A supplied classifier is first trained on
supplied training data, then a data generator (currently using kernels) is
used to generate new instances at points fixed in the two visualization
dimensions but random in the other dimensions. These instances are classified
by the classifier and plotted as points with colour corresponding to the
probability distribution predicted by the classifier. At present, 2 * 2^(#
non-fixed dimensions) points are generated from each kernel per pixel in the
display. In practice, fewer points than this are actually classified because
kernels are weighted (on a per-pixel basis) according to the fixexd
dimensions and kernels corresponding to the lowest 1% of the weight mass are
discarded. Predicted probability distributions are weighted (acording to the
fixed visualization dimensions) and averaged to produce an RGB value for the
pixel. For more information, see
Eibe Frank and Mark Hall (2003). Visualizing Class Probability Estimators. Working Paper 02/03, Department of Computer Science, University of Waikato.
- Since:
- 1.0
- Version:
- $Revision: 15104 $
- Author:
- Mark Hall
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
Nested classes/interfaces inherited from class java.awt.Component
Component.BaselineResizeBehavior
-
Field Summary
Fields inherited from class javax.swing.JComponent
TOOL_TIP_TEXT_KEY, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic void
createNewVisualizerWindow
(Classifier classifier, Instances instances) Creates a new GUI window with all of the BoundaryVisualizer trappings,static boolean
Gets whether System.exit gets called after the last window gets closedGet the training instancesReturns an instance of a TechnicalInformation object, containing detailed information about the technical background of this class, e.g., paper reference or book this class is based on.Returns a string describing this toolstatic void
Main method for testing this classvoid
Plots the training data on-screen.void
setClassifier
(Classifier newClassifier) Set a classifier to usestatic void
setExitIfNoWindowsOpen
(boolean value) Sets whether System.exit gets called when no more windows are open.void
setInstances
(Instances inst) Set the training instancesvoid
Queries the user for a file to load instances from, then loads the instances in a background process.int
Sets up the BoundaryPanel object so that it is ready for plotting.void
Stops the plotting thread.Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, setUI, updateUI
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintImmediately, paintImmediately, print, printAll, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, contains, createImage, createImage, createVolatileImage, createVolatileImage, dispatchEvent, enable, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Constructor Details
-
BoundaryVisualizer
public BoundaryVisualizer()Creates a newBoundaryVisualizer
instance.
-
-
Method Details
-
globalInfo
Returns a string describing this tool- Returns:
- a description of the tool suitable for displaying in various Weka GUIs
-
getTechnicalInformation
Returns an instance of a TechnicalInformation object, containing detailed information about the technical background of this class, e.g., paper reference or book this class is based on.- Specified by:
getTechnicalInformation
in interfaceTechnicalInformationHandler
- Returns:
- the technical information about this class
-
setClassifier
Set a classifier to use- Parameters:
newClassifier
- the classifier to use- Throws:
Exception
- if an error occurs
-
getInstances
Get the training instances- Returns:
- the training instances
-
setInstances
Set the training instances- Parameters:
inst
- the instances to use- Throws:
Exception
-
setInstancesFromFileQ
public void setInstancesFromFileQ()Queries the user for a file to load instances from, then loads the instances in a background process. This is done in the IO thread, and an error message is popped up if the IO thread is busy. -
setUpBoundaryPanel
Sets up the BoundaryPanel object so that it is ready for plotting.- Returns:
- an error code:
0 - SUCCESS
1 - ERROR - Kernel bandwidth < 0
2 - ERROR - Kernel bandwidth >= number of training instances. - Throws:
Exception
-
plotTrainingData
Plots the training data on-screen. Also does all of the setup required for this to work.- Throws:
Exception
-
stopPlotting
public void stopPlotting()Stops the plotting thread. -
setExitIfNoWindowsOpen
public static void setExitIfNoWindowsOpen(boolean value) Sets whether System.exit gets called when no more windows are open.- Parameters:
value
- if TRUE then a System.exit call is ossued after the last window gets closed.
-
getExitIfNoWindowsOpen
public static boolean getExitIfNoWindowsOpen()Gets whether System.exit gets called after the last window gets closed- Returns:
- TRUE if System.exit gets called after last window got closed.
-
createNewVisualizerWindow
public static void createNewVisualizerWindow(Classifier classifier, Instances instances) throws Exception Creates a new GUI window with all of the BoundaryVisualizer trappings,- Parameters:
classifier
- The classifier to use in the new window. May be null.instances
- The dataset to visualize on in the new window. May be null.- Throws:
Exception
-
main
Main method for testing this class- Parameters:
args
- aString[]
value
-