Class ClassifierPanel

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  ClassifierPanel.TestMode  
      • Nested classes/interfaces inherited from class javax.swing.JComponent

        javax.swing.JComponent.AccessibleJComponent
      • Nested classes/interfaces inherited from class java.awt.Component

        java.awt.Component.BaselineResizeBehavior
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String MODEL_FILE_EXTENSION
      The filename extension that should be used for model files.
      static java.lang.String PMML_FILE_EXTENSION
      The 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_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

      Constructors 
      Constructor Description
      ClassifierPanel()
      Creates the classifier panel.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean acceptsInstances()
      Returns true if this perspective can do something meaningful with a set of instances
      void capabilitiesFilterChanged​(Explorer.CapabilitiesFilterChangeEvent e)
      method gets called in case of a change event.
      java.lang.Object getClassificationOutputFormatter()
      Get the formatter for classifcation output
      Classifier getClassifier()
      Get the currently configured classifier from the GenericObjectEditor
      CostMatrix getCostMatrix()
      Get the cost matrix (if any)
      Defaults getDefaultSettings()
      Get the default settings for this perspective (or null if there are none)
      Explorer getExplorer()
      returns the parent Explorer frame.
      Instances getInstances()
      Get the current set of instances
      Logger getLog()
      Get the log
      int getNumCVFolds()
      Get the number of cross-validation folds to use
      double getPercentageSplit()
      Get the percentage to use for percentage split evaluation
      int getRandomSeed()
      Get the random seed
      ResultHistoryPanel getResultHistory()
      Get the result history panel
      int getSelectedClassIndex()
      Get the selected (0-based) class index
      int getSeparateTestSetClassIndex()
      Get the class index specified for the separate test set
      Loader getSeparateTestSetLoader()
      Get the loader object used for loading a separate test set
      java.lang.String getSourceCodeClassName()
      Gets the name of the source code class to be generated
      java.lang.String getTabTitle()
      Returns the title for the tab in the Explorer.
      java.lang.String getTabTitleToolTip()
      Returns the tooltip for the tab in the Explorer.
      boolean isSelectedCollectPredictionsForEvaluation()
      Gets whether the user has opted to collect the predictions for computing evaluation statistics
      boolean isSelectedCV()
      Gets whether cross-validation has been selected by the user
      boolean isSelectedEvalWithRespectToCosts()
      Gets whether evaluation with respect to costs has been selected by the user
      boolean isSelectedOutputConfusion()
      Gets whether the user has opted to output the confusion matrix
      boolean isSelectedOutputEntropy()
      Gets whether the user has opted to output entropy metrics
      boolean isSelectedOutputModel()
      Gets whether the user has opted to output the model
      boolean isSelectedOutputModelsForTrainingSplits()
      Gets whether the user has opted to output the models for the training splits
      boolean isSelectedOutputPerClassStats()
      Gets whether the user has opted to output per-class stats
      boolean isSelectedOutputSourceCode()
      Gets whether the user has opted to output source code
      boolean isSelectedPercentageSplit()
      Gets whether a percentage split has been selected by the user
      boolean isSelectedPreserveOrder()
      Gets whether the user has opted to preserve order of instances in a percentage split
      boolean isSelectedSeparateTestSet()
      Gets whether a separate test set has been selected by the user
      boolean isSelectedStoreTestDataAndPredictions()
      Gets whether the user has opted to store the test data and the predictions in the history
      boolean isSelectedTestOnTrain()
      Gets whether test on train has been selected by the user
      static void main​(java.lang.String[] args)
      Tests out the classifier panel from the command line.
      boolean okToBeActive()
      Returns true if the perspective is usable at this time.
      boolean requiresLog()
      Whether this perspective requires a graphical log to write to
      void saveClassifier​(java.lang.String name, Classifier classifier, Instances trainHeader)
      Saves the currently selected classifier.
      void setActive​(boolean active)
      Set active status of this perspective.
      void setExplorer​(Explorer parent)
      Sets the Explorer to use as parent frame (used for sending notifications about changes in the data).
      void setInstances​(Instances inst)
      Tells the panel to use a new set of instances.
      void setLog​(Logger newLog)
      Sets the Logger to receive informational messages.
      void settingsChanged()
      Called when the user alters settings.
      static Evaluation setupEval​(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 Evaluation setupEval​(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 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, transferFocus, transferFocusBackward, transferFocusUpCycle
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • MODEL_FILE_EXTENSION

        public static java.lang.String MODEL_FILE_EXTENSION
        The filename extension that should be used for model files.
      • PMML_FILE_EXTENSION

        public static java.lang.String PMML_FILE_EXTENSION
        The filename extension that should be used for PMML xml files.
    • Constructor Detail

      • ClassifierPanel

        public ClassifierPanel()
        Creates the classifier panel.
    • Method Detail

      • getInstances

        public 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 java.lang.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 configure
        classifier - the Classifier being used
        inst - the Instances involved
        costMatrix - 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:
        java.lang.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 java.lang.Exception
        Configures an evaluation object with respect to a classifier, cost matrix, output and plotting.
        Parameters:
        eval - the Evaluation object to configure
        classifier - the Classifier being used
        inst - the Instances involved
        costMatrix - 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
        collectPredictions - whether to collect predictions for calculating ROC, etc.
        Returns:
        the configured Evaluation object
        Throws:
        java.lang.Exception - if a problem occurs
      • saveClassifier

        public void saveClassifier​(java.lang.String name,
                                   Classifier classifier,
                                   Instances trainHeader)
        Saves the currently selected classifier.
        Parameters:
        name - the name of the run
        classifier - the classifier to save
        trainHeader - the header of the training instances
      • setExplorer

        public void setExplorer​(Explorer parent)
        Sets the Explorer to use as parent frame (used for sending notifications about changes in the data).
        Specified by:
        setExplorer in interface Explorer.ExplorerPanel
        Parameters:
        parent - the parent frame
      • getTabTitle

        public java.lang.String getTabTitle()
        Returns the title for the tab in the Explorer.
        Specified by:
        getTabTitle in interface Explorer.ExplorerPanel
        Returns:
        the title of this tab
      • getTabTitleToolTip

        public java.lang.String getTabTitleToolTip()
        Returns the tooltip for the tab in the Explorer.
        Specified by:
        getTabTitleToolTip in interface Explorer.ExplorerPanel
        Returns:
        the tooltip of this tab
      • okToBeActive

        public boolean okToBeActive()
        Description copied from class: AbstractPerspective
        Returns 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:
        okToBeActive in interface Perspective
        Overrides:
        okToBeActive in class AbstractPerspective
        Returns:
        true if this perspective is usable at this time
      • setActive

        public void setActive​(boolean active)
        Description copied from class: AbstractPerspective
        Set active status of this perspective. True indicates that this perspective is the visible active perspective in the application
        Specified by:
        setActive in interface Perspective
        Overrides:
        setActive in class AbstractPerspective
        Parameters:
        active - true if this perspective is the active one
      • 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

        public java.lang.String 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

        public Classifier getClassifier()
        Get the currently configured classifier from the GenericObjectEditor
        Returns:
        the currently configured classifier
      • getCostMatrix

        public CostMatrix getCostMatrix()
        Get the cost matrix (if any)
        Returns:
        the cost matrix
      • getClassificationOutputFormatter

        public java.lang.Object getClassificationOutputFormatter()
        Get the formatter for classifcation output
        Returns:
        the formatter for classification output
      • getResultHistory

        public ResultHistoryPanel getResultHistory()
        Get the result history panel
        Returns:
        the result history panel
      • getSeparateTestSetLoader

        public Loader 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

        public Logger getLog()
        Get the log
        Returns:
        the log object
      • main

        public static void main​(java.lang.String[] args)
        Tests out the classifier panel from the command line.
        Parameters:
        args - may optionally contain the name of a dataset to load.