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:
  - Serialized Form

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static enum`
  `ClassifierPanel.TestMode`

  ## 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
  Modifier and Type
  Field
  Description
  `static String`
  `MODEL_FILE_EXTENSION`
  The filename extension that should be used for model files.
  `static 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

  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.
  `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
  `String`
  `getSourceCodeClassName()`
  Gets the name of the source code class to be generated
  `String`
  `getTabTitle()`
  Returns the title for the tab in the Explorer.
  `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(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(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 weka.gui.AbstractPerspective

  `getMainApplication, getMenus, getPerspectiveIcon, getPerspectiveID, getPerspectiveTipText, getPerspectiveTitle, instantiationComplete, setLoaded, setMainApplication, terminate, toString`

  ### 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 Details

  - ### MODEL_FILE_EXTENSION

    public static String MODEL_FILE_EXTENSION
    The filename extension that should be used for model files.

  - ### PMML_FILE_EXTENSION

    public static String 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

    public void setLog(Logger newLog)
    Sets the Logger to receive informational messages.
    Specified by:
      `setLog` in interface `Explorer.LogHandler`
    Specified by:
      `setLog` in interface `Perspective`
    Overrides:
      `setLog` in class `AbstractPerspective`
    Parameters:
      `newLog` - the Logger that will now get info messages

  - ### setInstances

    public void setInstances(Instances inst)
    Tells the panel to use a new set of instances.
    Specified by:
      `setInstances` in interface `Explorer.ExplorerPanel`
    Specified by:
      `setInstances` in interface `Perspective`
    Overrides:
      `setInstances` in class `AbstractPerspective`
    Parameters:
      `inst` - a set of Instances

  - ### 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 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:
      `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 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:
      `Exception` - if a problem occurs

  - ### saveClassifier

    public void saveClassifier(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

  - ### capabilitiesFilterChanged

    public void capabilitiesFilterChanged(Explorer.CapabilitiesFilterChangeEvent e)
    method gets called in case of a change event.
    Specified by:
      `capabilitiesFilterChanged` in interface `Explorer.CapabilitiesFilterChangeListener`
    Parameters:
      `e` - the associated change event

  - ### 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

  - ### getExplorer

    public Explorer getExplorer()
    returns the parent Explorer frame.
    Specified by:
      `getExplorer` in interface `Explorer.ExplorerPanel`
    Returns:
      the parent

  - ### getTabTitle

    public 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 String getTabTitleToolTip()
    Returns the tooltip for the tab in the Explorer.
    Specified by:
      `getTabTitleToolTip` in interface `Explorer.ExplorerPanel`
    Returns:
      the tooltip of this tab

  - ### requiresLog

    public boolean requiresLog()
    Description copied from class: `AbstractPerspective`
    Whether this perspective requires a graphical log to write to
    Specified by:
      `requiresLog` in interface `Perspective`
    Overrides:
      `requiresLog` in class `AbstractPerspective`
    Returns:
      true if a log is needed by this perspective

  - ### acceptsInstances

    public boolean acceptsInstances()
    Description copied from class: `AbstractPerspective`
    Returns true if this perspective can do something meaningful with a set of instances
    Specified by:
      `acceptsInstances` in interface `Perspective`
    Overrides:
      `acceptsInstances` in class `AbstractPerspective`
    Returns:
      true if this perspective accepts instances

  - ### getDefaultSettings

    public Defaults getDefaultSettings()
    Description copied from class: `AbstractPerspective`
    Get the default settings for this perspective (or null if there are none)
    Specified by:
      `getDefaultSettings` in interface `Perspective`
    Overrides:
      `getDefaultSettings` in class `AbstractPerspective`
    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: `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

  - ### settingsChanged

    public void settingsChanged()
    Description copied from class: `AbstractPerspective`
    Called when the user alters settings. The settings altered by the user are not necessarily ones related to this perspective
    Specified by:
      `settingsChanged` in interface `Perspective`
    Overrides:
      `settingsChanged` in class `AbstractPerspective`

  - ### 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 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 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(String[] args)
    Tests out the classifier panel from the command line.
    Parameters:
      `args` - may optionally contain the name of a dataset to load.