в машинном обучении инаука о данныхполе,матрица путаницы(Confusion Матрица) — важный инструмент для оценки эффективности моделей классификации. Хотя матрица путаницы широко используется в задачах бинарной классификации, она также подходит для задач мультиклассификации. В этой статье мы углубимся в концепцию, методы интерпретации, сценарии применения матриц путаницы мультиклассификации и предоставим практический пример, который поможет вам лучше понять и использовать ее.
Матрица путаницы — это таблица, используемая для визуализации производительности модели классификации и сравнения прогнозов модели с фактическими метками. Для задач мультиклассификации структура матрицы путаницы может немного отличаться, но основная идея та же.
типичныйМногоклассовая матрица путаницыКак показано ниже:
Class 1 Class 2 Class 3 ... Class N
Class 1 TP11 TP12 TP13 TP1N
Class 2 TP21 TP22 TP23 TP2N
Class 3 TP31 TP32 TP33 TP3N
... ... ... ... ...
Class N TPN1 TPN2 TPN3 TPNN
Каждая строка представляет фактический класс, а каждый столбец представляет прогнозируемый класс модели. Элементы на диагонали матрицы (TPii) представляют количество выборок, правильно предсказанных моделью, а недиагональные элементы представляют количество выборок, неправильно предсказанных моделью.
Интерпретация матрицы путаницы
Матрица путаницы предоставляет обширную информацию для оценки моделей классификации, помогает анализировать производительность модели и корректировать ее параметры. Вот некоторые распространенные применения матриц путаницы:
Во-первых, нам нужно импортировать набор данных для распознавания рукописных цифр и подготовить данные. В этом разделе мы будем использовать его для практики.
from sklearn.datasets import load_digits
digits = load_digits()
X = digits.data
y = digits.target
Кроме того, нам также необходимо импортировать некоторые библиотеки следующим образом:
import matplotlib.pyplot as plt
from sklearn.metrics import confusion_matrix,recall_score,precision_score
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
Затем мы разрезаем набор данных, подгоняем обучающий набор и делаем прогнозы.
log_reg = LogisticRegression(max_iter=10000)
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.8,random_state=666)
log_reg.fit(X_train,y_train)
log_reg.score(X_test,y_test)
Вы можете оценить точность
Далее мы делаем прогнозы на основе хорошей модели логистической регрессии.
y_predict = log_reg.predict(X_test)
И распечатайте матрицу путаницы
confusion_matrix(y_test,y_predict)
Результаты бега следующие
Затем мы можем взглянуть на значения точности и полноты
precision_score(y_test,y_predict,average='micro')
recall_score(y_test,y_predict,average='macro')
Результаты бега следующие
Далее сохраняем матрицу путаницы в формате CFM и рисуем изображение.
cfm = confusion_matrix(y_test,y_predict)
plt.matshow(cfm)
Результаты бега следующие
Примечание. Чем ярче область, тем больше ошибок.
Мы можем установить диагональ равным 0
import numpy as np
row_sum = np.sum(cfm,axis=1)
error_matrix = cfm/row_sum
np.fill_diagonal(error_matrix,0) # Диагональ установлена на 0
Результаты бега следующие
Затем нарисуйте вот такое изображение
plt.matshow(error_matrix)
Вы сможете более интуитивно увидеть, где уровень ошибок высок, что облегчит последующую обработку.
Подводить итоги,Матрицы путаницы — мощный инструмент для оценки эффективности моделей мультиклассификации.,он предоставляет подробную информацию,Помогите нам понять, как модель работает в каждой категории. Сочетает в себе такие показатели, как точность, точность, отзыв и показатель F1.,Позволяет более полно оценить эффективность модели.,а затем улучшить модель или провести дальнейший анализ.。深入理解和应用матрица путаницы有助于提高Проект машинного обучениякачество и эффект。