Package weka.classifiers.evaluation
Class ConfusionMatrix
- java.lang.Object
-
- weka.core.matrix.Matrix
-
- weka.classifiers.evaluation.ConfusionMatrix
-
- All Implemented Interfaces:
java.io.Serializable,java.lang.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(java.lang.String[] classNames)Creates the confusion matrix with the given class names.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddPrediction(NominalPrediction pred)Includes a prediction in the confusion matrix.voidaddPredictions(java.util.ArrayList<Prediction> predictions)Includes a whole bunch of predictions in the confusion matrix.java.lang.StringclassName(int index)Gets the name of one of the classes.java.lang.Objectclone()Creates and returns a clone of this object.doublecorrect()Gets the number of correct classifications (that is, for which a correct prediction was made).doubleerrorRate()Returns the estimated error rate.java.lang.StringgetRevision()Returns the revision string.TwoClassStatsgetTwoClassStats(int classIndex)Gets the performance with respect to one of the classes as a TwoClassStats object.doubleincorrect()Gets the number of incorrect classifications (that is, for which an incorrect prediction was made).ConfusionMatrixmakeWeighted(CostMatrix costs)Makes a copy of this ConfusionMatrix after applying the supplied CostMatrix to the cells.intsize()Gets the number of classes.java.lang.StringtoString()Calls toString() with a default title.java.lang.StringtoString(java.lang.String title)Outputs the performance statistics as a classification confusion matrix.doubletotal()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
-
-
-
-
Method Detail
-
makeWeighted
public ConfusionMatrix makeWeighted(CostMatrix costs) throws java.lang.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:
java.lang.Exception- if the CostMatrix is not of the same size as this ConfusionMatrix.
-
clone
public java.lang.Object clone()
Creates and returns a clone of this object.
-
size
public int size()
Gets the number of classes.- Returns:
- the number of classes
-
className
public java.lang.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 java.lang.Exception
Includes a prediction in the confusion matrix.- Parameters:
pred- the NominalPrediction to include- Throws:
java.lang.Exception- if no valid prediction was made (i.e. unclassified).
-
addPredictions
public void addPredictions(java.util.ArrayList<Prediction> predictions) throws java.lang.Exception
Includes a whole bunch of predictions in the confusion matrix.- Parameters:
predictions- a FastVector containing the NominalPredictions to include- Throws:
java.lang.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 java.lang.String toString()
Calls toString() with a default title.
-
toString
public java.lang.String toString(java.lang.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 java.lang.String getRevision()
Returns the revision string.- Specified by:
getRevisionin interfaceRevisionHandler- Overrides:
getRevisionin classMatrix- Returns:
- the revision
-
-