Package weka.classifiers.evaluation

# Class ConfusionMatrix

java.lang.Object
weka.core.matrix.Matrix
weka.classifiers.evaluation.ConfusionMatrix

All Implemented Interfaces:
  `Serializable`, `Cloneable`, `RevisionHandler`

public class ConfusionMatrix extends Matrix
Cells of this matrix correspond to counts of the number (or weight) of predictions for each actual value / predicted value combination.

Version:
  $Revision: 10169 $
Author:
  Len Trigg (len@reeltwo.com)
See Also:
  - Serialized Form

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ConfusionMatrix(String[] classNames)`
  Creates the confusion matrix with the given class names.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addPrediction(NominalPrediction pred)`
  Includes a prediction in the confusion matrix.
  `void`
  `addPredictions(ArrayList<Prediction> predictions)`
  Includes a whole bunch of predictions in the confusion matrix.
  `String`
  `className(int index)`
  Gets the name of one of the classes.
  `Object`
  `clone()`
  Creates and returns a clone of this object.
  `double`
  `correct()`
  Gets the number of correct classifications (that is, for which a correct prediction was made).
  `double`
  `errorRate()`
  Returns the estimated error rate.
  `String`
  `getRevision()`
  Returns the revision string.
  `TwoClassStats`
  `getTwoClassStats(int classIndex)`
  Gets the performance with respect to one of the classes as a TwoClassStats object.
  `double`
  `incorrect()`
  Gets the number of incorrect classifications (that is, for which an incorrect prediction was made).
  `ConfusionMatrix`
  `makeWeighted(CostMatrix costs)`
  Makes a copy of this ConfusionMatrix after applying the supplied CostMatrix to the cells.
  `int`
  `size()`
  Gets the number of classes.
  `String`
  `toString()`
  Calls toString() with a default title.
  `String`
  `toString(String title)`
  Outputs the performance statistics as a classification confusion matrix.
  `double`
  `total()`
  Gets the number of predictions that were made (actually the sum of the weights of predictions where the class value was known).

  ### Methods inherited from class weka.core.matrix.Matrix

  `arrayLeftDivide, arrayLeftDivideEquals, arrayRightDivide, arrayRightDivideEquals, arrayTimes, arrayTimesEquals, chol, cond, constructWithCopy, copy, det, eig, get, getArray, getArrayCopy, getColumnDimension, getColumnPackedCopy, getMatrix, getMatrix, getMatrix, getMatrix, getRowDimension, getRowPackedCopy, identity, inverse, isSquare, isSymmetric, lu, main, minus, minusEquals, norm1, norm2, normF, normInf, parseMatlab, plus, plusEquals, print, print, print, print, qr, random, rank, read, regression, regression, set, setMatrix, setMatrix, setMatrix, setMatrix, solve, solveTranspose, sqrt, svd, times, times, timesEquals, toMatlab, trace, transpose, uminus, write`

  ### Methods inherited from class java.lang.Object

  `equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### ConfusionMatrix

    public ConfusionMatrix(String[] classNames)
    Creates the confusion matrix with the given class names.
    Parameters:
      `classNames` - an array containing the names the classes.

- ## Method Details

  - ### makeWeighted

    public ConfusionMatrix makeWeighted(CostMatrix costs) throws Exception
    Makes a copy of this ConfusionMatrix after applying the supplied CostMatrix to the cells. The resulting ConfusionMatrix can be used to get cost-weighted statistics.
    Parameters:
      `costs` - the CostMatrix.
    Returns:
      a ConfusionMatrix that has had costs applied.
    Throws:
      `Exception` - if the CostMatrix is not of the same size as this ConfusionMatrix.

  - ### clone

    public Object clone()
    Creates and returns a clone of this object.
    Overrides:
      `clone` in class `Matrix`
    Returns:
      a clone of this instance.

  - ### size

    public int size()
    Gets the number of classes.
    Returns:
      the number of classes

  - ### className

    public String className(int index)
    Gets the name of one of the classes.
    Parameters:
      `index` - the index of the class.
    Returns:
      the class name.

  - ### addPrediction

    public void addPrediction(NominalPrediction pred) throws Exception
    Includes a prediction in the confusion matrix.
    Parameters:
      `pred` - the NominalPrediction to include
    Throws:
      `Exception` - if no valid prediction was made (i.e. unclassified).

  - ### addPredictions

    public void addPredictions(ArrayList<Prediction> predictions) throws Exception
    Includes a whole bunch of predictions in the confusion matrix.
    Parameters:
      `predictions` - a FastVector containing the NominalPredictions to include
    Throws:
      `Exception` - if no valid prediction was made (i.e. unclassified).

  - ### getTwoClassStats

    public TwoClassStats getTwoClassStats(int classIndex)
    Gets the performance with respect to one of the classes as a TwoClassStats object.
    Parameters:
      `classIndex` - the index of the class of interest.
    Returns:
      the generated TwoClassStats object.

  - ### correct

    public double correct()
    Gets the number of correct classifications (that is, for which a correct prediction was made). (Actually the sum of the weights of these classifications)
    Returns:
      the number of correct classifications

  - ### incorrect

    public double incorrect()
    Gets the number of incorrect classifications (that is, for which an incorrect prediction was made). (Actually the sum of the weights of these classifications)
    Returns:
      the number of incorrect classifications

  - ### total

    public double total()
    Gets the number of predictions that were made (actually the sum of the weights of predictions where the class value was known).
    Returns:
      the number of predictions with known class

  - ### errorRate

    public double errorRate()
    Returns the estimated error rate.
    Returns:
      the estimated error rate (between 0 and 1).

  - ### toString

    public String toString()
    Calls toString() with a default title.
    Overrides:
      `toString` in class `Matrix`
    Returns:
      the confusion matrix as a string

  - ### toString

    public String toString(String title)
    Outputs the performance statistics as a classification confusion matrix. For each class value, shows the distribution of predicted class values.
    Parameters:
      `title` - the title for the confusion matrix
    Returns:
      the confusion matrix as a String

  - ### getRevision

    public String getRevision()
    Returns the revision string.
    Specified by:
      `getRevision` in interface `RevisionHandler`
    Overrides:
      `getRevision` in class `Matrix`
    Returns:
      the revision