ConfusionMatrixDisplay (original) (raw)
class sklearn.metrics.ConfusionMatrixDisplay(confusion_matrix, *, display_labels=None)[source]#
Confusion Matrix visualization.
It is recommend to usefrom_estimator orfrom_predictions to create a ConfusionMatrixDisplay. All parameters are stored as attributes.
Read more in the User Guide.
Parameters:
confusion_matrixndarray of shape (n_classes, n_classes)
Confusion matrix.
display_labelsndarray of shape (n_classes,), default=None
Display labels for plot. If None, display labels are set from 0 ton_classes - 1
.
Attributes:
**im_**matplotlib AxesImage
Image representing the confusion matrix.
**text_**ndarray of shape (n_classes, n_classes), dtype=matplotlib Text, or None
Array of matplotlib axes. None
if include_values
is false.
**ax_**matplotlib Axes
Axes with confusion matrix.
**figure_**matplotlib Figure
Figure containing the confusion matrix.
See also
Compute Confusion Matrix to evaluate the accuracy of a classification.
ConfusionMatrixDisplay.from_estimator
Plot the confusion matrix given an estimator, the data, and the label.
ConfusionMatrixDisplay.from_predictions
Plot the confusion matrix given the true and predicted labels.
Examples
import matplotlib.pyplot as plt from sklearn.datasets import make_classification from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay from sklearn.model_selection import train_test_split from sklearn.svm import SVC X, y = make_classification(random_state=0) X_train, X_test, y_train, y_test = train_test_split(X, y, ... random_state=0) clf = SVC(random_state=0) clf.fit(X_train, y_train) SVC(random_state=0) predictions = clf.predict(X_test) cm = confusion_matrix(y_test, predictions, labels=clf.classes_) disp = ConfusionMatrixDisplay(confusion_matrix=cm, ... display_labels=clf.classes_) disp.plot() <...> plt.show()
classmethod from_estimator(estimator, X, y, *, labels=None, sample_weight=None, normalize=None, display_labels=None, include_values=True, xticks_rotation='horizontal', values_format=None, cmap='viridis', ax=None, colorbar=True, im_kw=None, text_kw=None)[source]#
Plot Confusion Matrix given an estimator and some data.
Read more in the User Guide.
Added in version 1.0.
Parameters:
estimatorestimator instance
Fitted classifier or a fitted Pipelinein which the last estimator is a classifier.
X{array-like, sparse matrix} of shape (n_samples, n_features)
Input values.
yarray-like of shape (n_samples,)
Target values.
labelsarray-like of shape (n_classes,), default=None
List of labels to index the confusion matrix. This may be used to reorder or select a subset of labels. If None
is given, those that appear at least once in y_true
or y_pred
are used in sorted order.
sample_weightarray-like of shape (n_samples,), default=None
Sample weights.
normalize{‘true’, ‘pred’, ‘all’}, default=None
Either to normalize the counts display in the matrix:
- if
'true'
, the confusion matrix is normalized over the true conditions (e.g. rows); - if
'pred'
, the confusion matrix is normalized over the predicted conditions (e.g. columns); - if
'all'
, the confusion matrix is normalized by the total number of samples; - if
None
(default), the confusion matrix will not be normalized.
display_labelsarray-like of shape (n_classes,), default=None
Target names used for plotting. By default, labels
will be used if it is defined, otherwise the unique labels of y_true
andy_pred
will be used.
include_valuesbool, default=True
Includes values in confusion matrix.
xticks_rotation{‘vertical’, ‘horizontal’} or float, default=’horizontal’
Rotation of xtick labels.
values_formatstr, default=None
Format specification for values in confusion matrix. If None
, the format specification is ‘d’ or ‘.2g’ whichever is shorter.
cmapstr or matplotlib Colormap, default=’viridis’
Colormap recognized by matplotlib.
axmatplotlib Axes, default=None
Axes object to plot on. If None
, a new figure and axes is created.
colorbarbool, default=True
Whether or not to add a colorbar to the plot.
im_kwdict, default=None
Dict with keywords passed to matplotlib.pyplot.imshow
call.
text_kwdict, default=None
Dict with keywords passed to matplotlib.pyplot.text
call.
Added in version 1.2.
Returns:
displayConfusionMatrixDisplay
See also
ConfusionMatrixDisplay.from_predictions
Plot the confusion matrix given the true and predicted labels.
Examples
import matplotlib.pyplot as plt from sklearn.datasets import make_classification from sklearn.metrics import ConfusionMatrixDisplay from sklearn.model_selection import train_test_split from sklearn.svm import SVC X, y = make_classification(random_state=0) X_train, X_test, y_train, y_test = train_test_split( ... X, y, random_state=0) clf = SVC(random_state=0) clf.fit(X_train, y_train) SVC(random_state=0) ConfusionMatrixDisplay.from_estimator( ... clf, X_test, y_test) <...> plt.show()
classmethod from_predictions(y_true, y_pred, *, labels=None, sample_weight=None, normalize=None, display_labels=None, include_values=True, xticks_rotation='horizontal', values_format=None, cmap='viridis', ax=None, colorbar=True, im_kw=None, text_kw=None)[source]#
Plot Confusion Matrix given true and predicted labels.
Read more in the User Guide.
Added in version 1.0.
Parameters:
y_truearray-like of shape (n_samples,)
True labels.
y_predarray-like of shape (n_samples,)
The predicted labels given by the method predict
of an classifier.
labelsarray-like of shape (n_classes,), default=None
List of labels to index the confusion matrix. This may be used to reorder or select a subset of labels. If None
is given, those that appear at least once in y_true
or y_pred
are used in sorted order.
sample_weightarray-like of shape (n_samples,), default=None
Sample weights.
normalize{‘true’, ‘pred’, ‘all’}, default=None
Either to normalize the counts display in the matrix:
- if
'true'
, the confusion matrix is normalized over the true conditions (e.g. rows); - if
'pred'
, the confusion matrix is normalized over the predicted conditions (e.g. columns); - if
'all'
, the confusion matrix is normalized by the total number of samples; - if
None
(default), the confusion matrix will not be normalized.
display_labelsarray-like of shape (n_classes,), default=None
Target names used for plotting. By default, labels
will be used if it is defined, otherwise the unique labels of y_true
andy_pred
will be used.
include_valuesbool, default=True
Includes values in confusion matrix.
xticks_rotation{‘vertical’, ‘horizontal’} or float, default=’horizontal’
Rotation of xtick labels.
values_formatstr, default=None
Format specification for values in confusion matrix. If None
, the format specification is ‘d’ or ‘.2g’ whichever is shorter.
cmapstr or matplotlib Colormap, default=’viridis’
Colormap recognized by matplotlib.
axmatplotlib Axes, default=None
Axes object to plot on. If None
, a new figure and axes is created.
colorbarbool, default=True
Whether or not to add a colorbar to the plot.
im_kwdict, default=None
Dict with keywords passed to matplotlib.pyplot.imshow
call.
text_kwdict, default=None
Dict with keywords passed to matplotlib.pyplot.text
call.
Added in version 1.2.
Returns:
displayConfusionMatrixDisplay
See also
ConfusionMatrixDisplay.from_estimator
Plot the confusion matrix given an estimator, the data, and the label.
Examples
import matplotlib.pyplot as plt from sklearn.datasets import make_classification from sklearn.metrics import ConfusionMatrixDisplay from sklearn.model_selection import train_test_split from sklearn.svm import SVC X, y = make_classification(random_state=0) X_train, X_test, y_train, y_test = train_test_split( ... X, y, random_state=0) clf = SVC(random_state=0) clf.fit(X_train, y_train) SVC(random_state=0) y_pred = clf.predict(X_test) ConfusionMatrixDisplay.from_predictions( ... y_test, y_pred) <...> plt.show()
plot(*, include_values=True, cmap='viridis', xticks_rotation='horizontal', values_format=None, ax=None, colorbar=True, im_kw=None, text_kw=None)[source]#
Plot visualization.
Parameters:
include_valuesbool, default=True
Includes values in confusion matrix.
cmapstr or matplotlib Colormap, default=’viridis’
Colormap recognized by matplotlib.
xticks_rotation{‘vertical’, ‘horizontal’} or float, default=’horizontal’
Rotation of xtick labels.
values_formatstr, default=None
Format specification for values in confusion matrix. If None
, the format specification is ‘d’ or ‘.2g’ whichever is shorter.
axmatplotlib axes, default=None
Axes object to plot on. If None
, a new figure and axes is created.
colorbarbool, default=True
Whether or not to add a colorbar to the plot.
im_kwdict, default=None
Dict with keywords passed to matplotlib.pyplot.imshow
call.
text_kwdict, default=None
Dict with keywords passed to matplotlib.pyplot.text
call.
Added in version 1.2.
Returns:
displayConfusionMatrixDisplay
Returns a ConfusionMatrixDisplay instance that contains all the information to plot the confusion matrix.