Примечание
Перейти к концу, чтобы загрузить полный код примера. или запустить этот пример в вашем браузере через JupyterLite или Binder
Матрица неточностей
Пример использования матрицы неточностей для оценки качества работы классификатора на наборе данных ириса. Диагональные элементы представляют количество точек, для которых предсказанный метка совпадает с истинной меткой, а внедиагональные элементы — те, которые были неправильно классифицированы классификатором. Чем выше значения на диагонали матрицы неточностей, тем лучше, что указывает на большое количество правильных предсказаний.
Рисунки показывают матрицу неточностей с и без нормализации по размеру поддержки класса (количество элементов в каждом классе). Такая нормализация может быть интересной в случае несбалансированных классов, чтобы получить более наглядное представление о том, какой класс неправильно классифицируется.
Здесь результаты не так хороши, как могли бы быть, так как наш выбор параметра регуляризации C не был наилучшим. В реальных приложениях этот параметр обычно выбирается с помощью Настройка гиперпараметров оценщика.
Confusion matrix, without normalization [[13 0 0] [ 0 10 6] [ 0 0 9]] Normalized confusion matrix [[1. 0. 0. ] [0. 0.62 0.38] [0. 0. 1. ]]
# Authors: The scikit-learn developers
# SPDX-License-Identifier: BSD-3-Clause
import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets, svm
from sklearn.metrics import ConfusionMatrixDisplay
from sklearn.model_selection import train_test_split
# import some data to play with
iris = datasets.load_iris()
X = iris.data
y = iris.target
class_names = iris.target_names
# Split the data into a training set and a test set
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)
# Run classifier, using a model that is too regularized (C too low) to see
# the impact on the results
classifier = svm.SVC(kernel="linear", C=0.01).fit(X_train, y_train)
np.set_printoptions(precision=2)
# Plot non-normalized confusion matrix
titles_options = [
("Confusion matrix, without normalization", None),
("Normalized confusion matrix", "true"),
]
for title, normalize in titles_options:
disp = ConfusionMatrixDisplay.from_estimator(
classifier,
X_test,
y_test,
display_labels=class_names,
cmap=plt.cm.Blues,
normalize=normalize,
)
disp.ax_.set_title(title)
print(title)
print(disp.confusion_matrix)
plt.show()
Общее время выполнения скрипта: (0 минут 0,218 секунд)
Похожие примеры
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/auto_examples/model_selection/plot_confusion_matrix.html

