/** For freeing up memory. Plot data cannot be generated after this call! */
  public void cleanUp() {
    super.cleanUp();

    m_Classifier = null;
    m_PlotShapes = null;
    m_PlotSizes = null;
    m_Evaluation = null;
  }
  /**
   * Performs optional post-processing.
   *
   * @see #scaleNumericPredictions()
   * @see #addPredictionIntervals()
   */
  protected void finishUp() {
    super.finishUp();

    if (!m_SaveForVisualization) return;

    if (m_Instances.attribute(m_ClassIndex).isNumeric()) scaleNumericPredictions();
    if (m_Classifier instanceof IntervalEstimator) addPredictionIntervals();
  }
  /** Checks whether classifier, class index and evaluation are provided. */
  protected void check() {
    super.check();

    if (m_Classifier == null) throw new IllegalStateException("No classifier set!");

    if (m_ClassIndex == -1) throw new IllegalStateException("No class index set!");

    if (m_Evaluation == null) throw new IllegalStateException("No evaluation set");
  }
  /** Initializes the members. */
  protected void initialize() {
    super.initialize();

    m_PlotShapes = new FastVector();
    m_PlotSizes = new FastVector();
    m_Classifier = null;
    m_ClassIndex = -1;
    m_Evaluation = null;
    m_SaveForVisualization = true;
    m_MinimumPlotSizeNumeric = ExplorerDefaults.getClassifierErrorsMinimumPlotSizeNumeric();
    m_MaximumPlotSizeNumeric = ExplorerDefaults.getClassifierErrorsMaximumPlotSizeNumeric();
  }