ConfusionMatrixDisplay#

sklearn.metrics.ConfusionMatrixDisplay(confusion_matrix, *, display_labels=None)[源]#

混淆矩阵可视化。

建议使用 from_estimatorfrom_predictions 来创建 ConfusionMatrixDisplay。所有参数都存储为属性。

有关 scikit-learn 可视化工具的一般信息,请参阅可视化指南。有关解释这些图的指导,请参阅模型评估指南

参数:
confusion_matrix形状为 (n_classes, n_classes) 的 ndarray

混淆矩阵。

display_labels形状为 (n_classes,) 的 ndarray,默认为 None

图的显示标签。如果为 None,则显示标签设置为从 0 到 n_classes - 1

属性:
im_matplotlib AxesImage

表示混淆矩阵的图像。

text_形状为 (n_classes, n_classes) 的 ndarray,dtype=matplotlib Text,或 None

matplotlib 坐标轴数组。如果 include_values 为 false,则为 None

ax_matplotlib Axes

包含混淆矩阵的坐标轴。

figure_matplotlib Figure

包含混淆矩阵的图。

另请参阅

confusion_matrix

计算混淆矩阵以评估分类的准确性。

ConfusionMatrixDisplay.from_estimator

根据估计器、数据和标签绘制混淆矩阵。

ConfusionMatrixDisplay.from_predictions

根据真实和预测标签绘制混淆矩阵。

示例

>>> 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()
../../_images/sklearn-metrics-ConfusionMatrixDisplay-1.png
类方法 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)[源]#

根据估计器和数据绘制混淆矩阵。

有关 scikit-learn 可视化工具的一般信息,请参阅可视化指南。有关解释这些图的指导,请参阅模型评估指南

版本 1.0 新增。

参数:
estimator估计器实例

已拟合的分类器或已拟合的Pipeline(其中最后一个估计器是分类器)。

X形状为 (n_samples, n_features) 的 {array-like, 稀疏矩阵}

输入值。

y形状为 (n_samples,) 的 array-like

目标值。

labels形状为 (n_classes,) 的 array-like,默认为 None

用于索引混淆矩阵的标签列表。可用于重新排序或选择标签子集。如果给定 None,则使用在 y_truey_pred 中至少出现一次的标签,按排序顺序使用。

sample_weight形状为 (n_samples,) 的 array-like,默认为 None

样本权重。

normalize{‘true’, ‘pred’, ‘all’},默认为 None

是否归一化矩阵中显示的计数

  • 如果为 'true',则混淆矩阵按真实条件(例如行)归一化;

  • 如果为 'pred',则混淆矩阵按预测条件(例如列)归一化;

  • 如果为 'all',则混淆矩阵按样本总数归一化;

  • 如果为 None(默认),则混淆矩阵将不被归一化。

display_labels形状为 (n_classes,) 的 array-like,默认为 None

用于绘图的目标名称。默认情况下,如果定义了 labels,则使用它,否则使用 y_truey_pred 的唯一标签。

include_valuesbool,默认为 True

在混淆矩阵中包含值。

xticks_rotation{‘vertical’, ‘horizontal’} 或 float,默认为’horizontal’

x 轴刻度标签的旋转角度。

values_formatstr,默认为 None

混淆矩阵中值的格式规范。如果为 None,则格式规范为 'd' 或 '.2g',以较短者为准。

cmapstr 或 matplotlib Colormap,默认为’viridis’

matplotlib 识别的颜色图。

axmatplotlib Axes,默认为 None

用于绘图的坐标轴对象。如果为 None,则创建新的图和坐标轴。

colorbarbool,默认为 True

是否向图中添加颜色条。

im_kwdict,默认为 None

包含传递给 matplotlib.pyplot.imshow 调用的关键字的字典。

text_kwdict,默认为 None

包含传递给 matplotlib.pyplot.text 调用的关键字的字典。

版本 1.2 新增。

返回:
displayConfusionMatrixDisplay

另请参阅

ConfusionMatrixDisplay.from_predictions

根据真实和预测标签绘制混淆矩阵。

示例

>>> 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()
../../_images/sklearn-metrics-ConfusionMatrixDisplay-2_00_00.png

有关使用混淆矩阵评估支持向量分类器的详细示例,请参阅混淆矩阵

类方法 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)[源]#

根据真实和预测标签绘制混淆矩阵。

有关 scikit-learn 可视化工具的一般信息,请参阅可视化指南。有关解释这些图的指导,请参阅模型评估指南

版本 1.0 新增。

参数:
y_true形状为 (n_samples,) 的 array-like

真实标签。

y_pred形状为 (n_samples,) 的 array-like

分类器的 predict 方法给出的预测标签。

labels形状为 (n_classes,) 的 array-like,默认为 None

用于索引混淆矩阵的标签列表。可用于重新排序或选择标签子集。如果给定 None,则使用在 y_truey_pred 中至少出现一次的标签,按排序顺序使用。

sample_weight形状为 (n_samples,) 的 array-like,默认为 None

样本权重。

normalize{‘true’, ‘pred’, ‘all’},默认为 None

是否归一化矩阵中显示的计数

  • 如果为 'true',则混淆矩阵按真实条件(例如行)归一化;

  • 如果为 'pred',则混淆矩阵按预测条件(例如列)归一化;

  • 如果为 'all',则混淆矩阵按样本总数归一化;

  • 如果为 None(默认),则混淆矩阵将不被归一化。

display_labels形状为 (n_classes,) 的 array-like,默认为 None

用于绘图的目标名称。默认情况下,如果定义了 labels,则使用它,否则使用 y_truey_pred 的唯一标签。

include_valuesbool,默认为 True

在混淆矩阵中包含值。

xticks_rotation{‘vertical’, ‘horizontal’} 或 float,默认为’horizontal’

x 轴刻度标签的旋转角度。

values_formatstr,默认为 None

混淆矩阵中值的格式规范。如果为 None,则格式规范为 'd' 或 '.2g',以较短者为准。

cmapstr 或 matplotlib Colormap,默认为’viridis’

matplotlib 识别的颜色图。

axmatplotlib Axes,默认为 None

用于绘图的坐标轴对象。如果为 None,则创建新的图和坐标轴。

colorbarbool,默认为 True

是否向图中添加颜色条。

im_kwdict,默认为 None

包含传递给 matplotlib.pyplot.imshow 调用的关键字的字典。

text_kwdict,默认为 None

包含传递给 matplotlib.pyplot.text 调用的关键字的字典。

版本 1.2 新增。

返回:
displayConfusionMatrixDisplay

另请参阅

ConfusionMatrixDisplay.from_estimator

根据估计器、数据和标签绘制混淆矩阵。

示例

>>> 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()
../../_images/sklearn-metrics-ConfusionMatrixDisplay-3.png
plot(*, include_values=True, cmap='viridis', xticks_rotation='horizontal', values_format=None, ax=None, colorbar=True, im_kw=None, text_kw=None)[源]#

绘制可视化。

参数:
include_valuesbool,默认为 True

在混淆矩阵中包含值。

cmapstr 或 matplotlib Colormap,默认为’viridis’

matplotlib 识别的颜色图。

xticks_rotation{‘vertical’, ‘horizontal’} 或 float,默认为’horizontal’

x 轴刻度标签的旋转角度。

values_formatstr,默认为 None

混淆矩阵中值的格式规范。如果为 None,则格式规范为 'd' 或 '.2g',以较短者为准。

axmatplotlib axes,默认为 None

用于绘图的坐标轴对象。如果为 None,则创建新的图和坐标轴。

colorbarbool,默认为 True

是否向图中添加颜色条。

im_kwdict,默认为 None

包含传递给 matplotlib.pyplot.imshow 调用的关键字的字典。

text_kwdict,默认为 None

包含传递给 matplotlib.pyplot.text 调用的关键字的字典。

版本 1.2 新增。

返回:
displayConfusionMatrixDisplay

返回一个 ConfusionMatrixDisplay 实例,其中包含绘制混淆矩阵的所有信息。