Package weka.gui.explorer
Class ClassifierPanel
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
weka.gui.AbstractPerspective
weka.gui.explorer.ClassifierPanel
- All Implemented Interfaces:
ImageObserver,MenuContainer,Serializable,EventListener,Accessible,Explorer.CapabilitiesFilterChangeListener,Explorer.ExplorerPanel,Explorer.LogHandler,Perspective
@PerspectiveInfo(ID="weka.gui.explorer.classifierpanel",
title="Classify",
toolTipText="Classify instances",
iconPath="weka/gui/weka_icon_new_small.png")
public class ClassifierPanel
extends AbstractPerspective
implements Explorer.CapabilitiesFilterChangeListener, Explorer.ExplorerPanel, Explorer.LogHandler
This panel allows the user to select and configure a classifier, set the
attribute of the current dataset to be used as the class, and evaluate the
classifier using a number of testing modes (test on the training data,
train/test on a percentage split, n-fold cross-validation, test on a separate
split). The results of classification runs are stored in a result history so
that previous results are accessible.
- Version:
- $Revision: 15305 $
- Author:
- Len Trigg (trigg@cs.waikato.ac.nz), Mark Hall (mhall@cs.waikato.ac.nz), Richard Kirkby (rkirkby@cs.waikato.ac.nz)
- See Also:
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponentNested classes/interfaces inherited from class java.awt.Component
Component.BaselineResizeBehavior -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic StringThe filename extension that should be used for model files.static StringThe filename extension that should be used for PMML xml files.Fields inherited from class javax.swing.JComponent
TOOL_TIP_TEXT_KEY, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOWFields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanReturns true if this perspective can do something meaningful with a set of instancesvoidmethod gets called in case of a change event.Get the formatter for classifcation outputGet the currently configured classifier from the GenericObjectEditorGet the cost matrix (if any)Get the default settings for this perspective (or null if there are none)returns the parent Explorer frame.Get the current set of instancesgetLog()Get the logintGet the number of cross-validation folds to usedoubleGet the percentage to use for percentage split evaluationintGet the random seedGet the result history panelintGet the selected (0-based) class indexintGet the class index specified for the separate test setGet the loader object used for loading a separate test setGets the name of the source code class to be generatedReturns the title for the tab in the Explorer.Returns the tooltip for the tab in the Explorer.booleanGets whether the user has opted to collect the predictions for computing evaluation statisticsbooleanGets whether cross-validation has been selected by the userbooleanGets whether evaluation with respect to costs has been selected by the userbooleanGets whether the user has opted to output the confusion matrixbooleanGets whether the user has opted to output entropy metricsbooleanGets whether the user has opted to output the modelbooleanGets whether the user has opted to output the models for the training splitsbooleanGets whether the user has opted to output per-class statsbooleanGets whether the user has opted to output source codebooleanGets whether a percentage split has been selected by the userbooleanGets whether the user has opted to preserve order of instances in a percentage splitbooleanGets whether a separate test set has been selected by the userbooleanGets whether the user has opted to store the test data and the predictions in the historybooleanGets whether test on train has been selected by the userstatic voidTests out the classifier panel from the command line.booleanReturns true if the perspective is usable at this time.booleanWhether this perspective requires a graphical log to write tovoidsaveClassifier(String name, Classifier classifier, Instances trainHeader) Saves the currently selected classifier.voidsetActive(boolean active) Set active status of this perspective.voidsetExplorer(Explorer parent) Sets the Explorer to use as parent frame (used for sending notifications about changes in the data).voidsetInstances(Instances inst) Tells the panel to use a new set of instances.voidSets the Logger to receive informational messages.voidCalled when the user alters settings.static EvaluationsetupEval(Evaluation eval, Classifier classifier, Instances inst, CostMatrix costMatrix, ClassifierErrorsPlotInstances plotInstances, AbstractOutput classificationOutput, boolean onlySetPriors) Configures an evaluation object with respect to a classifier, cost matrix, output and plotting.static EvaluationsetupEval(Evaluation eval, Classifier classifier, Instances inst, CostMatrix costMatrix, ClassifierErrorsPlotInstances plotInstances, AbstractOutput classificationOutput, boolean onlySetPriors, boolean collectPredictions) Configures an evaluation object with respect to a classifier, cost matrix, output and plotting.Methods inherited from class weka.gui.AbstractPerspective
getMainApplication, getMenus, getPerspectiveIcon, getPerspectiveID, getPerspectiveTipText, getPerspectiveTitle, instantiationComplete, setLoaded, setMainApplication, terminate, toStringMethods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, setUI, updateUIMethods 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, updateMethods 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, validateMethods 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, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Field Details
-
MODEL_FILE_EXTENSION
The filename extension that should be used for model files. -
PMML_FILE_EXTENSION
The filename extension that should be used for PMML xml files.
-
-
Constructor Details
-
ClassifierPanel
public ClassifierPanel()Creates the classifier panel.
-
-
Method Details
-
setLog
Sets the Logger to receive informational messages.- Specified by:
setLogin interfaceExplorer.LogHandler- Specified by:
setLogin interfacePerspective- Overrides:
setLogin classAbstractPerspective- Parameters:
newLog- the Logger that will now get info messages
-
setInstances
Tells the panel to use a new set of instances.- Specified by:
setInstancesin interfaceExplorer.ExplorerPanel- Specified by:
setInstancesin interfacePerspective- Overrides:
setInstancesin classAbstractPerspective- Parameters:
inst- a set of Instances
-
getInstances
Get the current set of instances- Returns:
- the current set of instances
-
setupEval
public static Evaluation setupEval(Evaluation eval, Classifier classifier, Instances inst, CostMatrix costMatrix, ClassifierErrorsPlotInstances plotInstances, AbstractOutput classificationOutput, boolean onlySetPriors) throws Exception Configures an evaluation object with respect to a classifier, cost matrix, output and plotting. Predictions are kept for calculating AUROC, etc.- Parameters:
eval- the Evaluation object to configureclassifier- the Classifier being usedinst- the Instances involvedcostMatrix- a cost matrix (if any)plotInstances- a ClassifierErrorsPlotInstances for visualization of errors (can be null)classificationOutput- an output object for printing predictions (can be null)onlySetPriors- true to only set priors- Returns:
- the configured Evaluation object
- Throws:
Exception- if a problem occurs
-
setupEval
public static Evaluation setupEval(Evaluation eval, Classifier classifier, Instances inst, CostMatrix costMatrix, ClassifierErrorsPlotInstances plotInstances, AbstractOutput classificationOutput, boolean onlySetPriors, boolean collectPredictions) throws Exception Configures an evaluation object with respect to a classifier, cost matrix, output and plotting.- Parameters:
eval- the Evaluation object to configureclassifier- the Classifier being usedinst- the Instances involvedcostMatrix- a cost matrix (if any)plotInstances- a ClassifierErrorsPlotInstances for visualization of errors (can be null)classificationOutput- an output object for printing predictions (can be null)onlySetPriors- true to only set priorscollectPredictions- whether to collect predictions for calculating ROC, etc.- Returns:
- the configured Evaluation object
- Throws:
Exception- if a problem occurs
-
saveClassifier
Saves the currently selected classifier.- Parameters:
name- the name of the runclassifier- the classifier to savetrainHeader- the header of the training instances
-
capabilitiesFilterChanged
method gets called in case of a change event.- Specified by:
capabilitiesFilterChangedin interfaceExplorer.CapabilitiesFilterChangeListener- Parameters:
e- the associated change event
-
setExplorer
Sets the Explorer to use as parent frame (used for sending notifications about changes in the data).- Specified by:
setExplorerin interfaceExplorer.ExplorerPanel- Parameters:
parent- the parent frame
-
getExplorer
returns the parent Explorer frame.- Specified by:
getExplorerin interfaceExplorer.ExplorerPanel- Returns:
- the parent
-
getTabTitle
Returns the title for the tab in the Explorer.- Specified by:
getTabTitlein interfaceExplorer.ExplorerPanel- Returns:
- the title of this tab
-
getTabTitleToolTip
Returns the tooltip for the tab in the Explorer.- Specified by:
getTabTitleToolTipin interfaceExplorer.ExplorerPanel- Returns:
- the tooltip of this tab
-
requiresLog
public boolean requiresLog()Description copied from class:AbstractPerspectiveWhether this perspective requires a graphical log to write to- Specified by:
requiresLogin interfacePerspective- Overrides:
requiresLogin classAbstractPerspective- Returns:
- true if a log is needed by this perspective
-
acceptsInstances
public boolean acceptsInstances()Description copied from class:AbstractPerspectiveReturns true if this perspective can do something meaningful with a set of instances- Specified by:
acceptsInstancesin interfacePerspective- Overrides:
acceptsInstancesin classAbstractPerspective- Returns:
- true if this perspective accepts instances
-
getDefaultSettings
Description copied from class:AbstractPerspectiveGet the default settings for this perspective (or null if there are none)- Specified by:
getDefaultSettingsin interfacePerspective- Overrides:
getDefaultSettingsin classAbstractPerspective- Returns:
- the default settings for this perspective, or null if the perspective does not have any settings
-
okToBeActive
public boolean okToBeActive()Description copied from class:AbstractPerspectiveReturns true if the perspective is usable at this time. This is a no-opp implementation that always returns true. Subclasses should override if there are specific conditions that need to be met (e.g. can't operate if there are no instances set).- Specified by:
okToBeActivein interfacePerspective- Overrides:
okToBeActivein classAbstractPerspective- Returns:
- true if this perspective is usable at this time
-
setActive
public void setActive(boolean active) Description copied from class:AbstractPerspectiveSet active status of this perspective. True indicates that this perspective is the visible active perspective in the application- Specified by:
setActivein interfacePerspective- Overrides:
setActivein classAbstractPerspective- Parameters:
active- true if this perspective is the active one
-
settingsChanged
public void settingsChanged()Description copied from class:AbstractPerspectiveCalled when the user alters settings. The settings altered by the user are not necessarily ones related to this perspective- Specified by:
settingsChangedin interfacePerspective- Overrides:
settingsChangedin classAbstractPerspective
-
isSelectedCV
public boolean isSelectedCV()Gets whether cross-validation has been selected by the user- Returns:
- true if cross-validation has been selected
-
isSelectedTestOnTrain
public boolean isSelectedTestOnTrain()Gets whether test on train has been selected by the user- Returns:
- true if testing is to be done on the training set
-
isSelectedPercentageSplit
public boolean isSelectedPercentageSplit()Gets whether a percentage split has been selected by the user- Returns:
- true if a percentage split has been selected
-
isSelectedSeparateTestSet
public boolean isSelectedSeparateTestSet()Gets whether a separate test set has been selected by the user- Returns:
- true if a separate test set has been selected by the user
-
isSelectedEvalWithRespectToCosts
public boolean isSelectedEvalWithRespectToCosts()Gets whether evaluation with respect to costs has been selected by the user- Returns:
- true if eval with respect to costs
-
isSelectedOutputModel
public boolean isSelectedOutputModel()Gets whether the user has opted to output the model- Returns:
- true if the model is to be output
-
isSelectedOutputModelsForTrainingSplits
public boolean isSelectedOutputModelsForTrainingSplits()Gets whether the user has opted to output the models for the training splits- Returns:
- true if the models for the training splits are to be output
-
isSelectedOutputConfusion
public boolean isSelectedOutputConfusion()Gets whether the user has opted to output the confusion matrix- Returns:
- true if the confusion matrix is to be output
-
isSelectedOutputPerClassStats
public boolean isSelectedOutputPerClassStats()Gets whether the user has opted to output per-class stats- Returns:
- true if per-class stats are to be output
-
isSelectedOutputEntropy
public boolean isSelectedOutputEntropy()Gets whether the user has opted to output entropy metrics- Returns:
- true if entropy metrics are to be output
-
isSelectedStoreTestDataAndPredictions
public boolean isSelectedStoreTestDataAndPredictions()Gets whether the user has opted to store the test data and the predictions in the history- Returns:
- true if test data and predictions are to be stored
-
isSelectedCollectPredictionsForEvaluation
public boolean isSelectedCollectPredictionsForEvaluation()Gets whether the user has opted to collect the predictions for computing evaluation statistics- Returns:
- true if predictions are to be stored
-
isSelectedOutputSourceCode
public boolean isSelectedOutputSourceCode()Gets whether the user has opted to output source code- Returns:
- true if source code is to be output
-
isSelectedPreserveOrder
public boolean isSelectedPreserveOrder()Gets whether the user has opted to preserve order of instances in a percentage split- Returns:
- whether the user has opted to preserve the instance order
-
getSourceCodeClassName
Gets the name of the source code class to be generated- Returns:
- the name of the source code class to be generated
-
getSelectedClassIndex
public int getSelectedClassIndex()Get the selected (0-based) class index- Returns:
- the selected class index
-
getNumCVFolds
public int getNumCVFolds()Get the number of cross-validation folds to use- Returns:
- the number of cross-validation folds to use
-
getPercentageSplit
public double getPercentageSplit()Get the percentage to use for percentage split evaluation- Returns:
- the percentage to use in a percent split evaluation
-
getClassifier
Get the currently configured classifier from the GenericObjectEditor- Returns:
- the currently configured classifier
-
getCostMatrix
Get the cost matrix (if any)- Returns:
- the cost matrix
-
getClassificationOutputFormatter
Get the formatter for classifcation output- Returns:
- the formatter for classification output
-
getResultHistory
Get the result history panel- Returns:
- the result history panel
-
getSeparateTestSetLoader
Get the loader object used for loading a separate test set- Returns:
- the loader used for loading a separate test set
-
getSeparateTestSetClassIndex
public int getSeparateTestSetClassIndex()Get the class index specified for the separate test set- Returns:
- the class index specified for the separate test set
-
getRandomSeed
public int getRandomSeed()Get the random seed- Returns:
- the random seed
-
getLog
Get the log- Returns:
- the log object
-
main
Tests out the classifier panel from the command line.- Parameters:
args- may optionally contain the name of a dataset to load.
-