Матрица неточности#
Матрица путаницы (confusion matrix) - это таблица, используемая для оценки эффективности классификационной модели. Это широко используемый инструмент в машинном обучении для измерения точности модели. Матрица строится путем сравнения прогнозируемых меток с фактическими метками данных. Матрица обычно используется, когда целевая переменная является категориальной или двоичной.
Четыре результата матрицы неточности#
Матрица путаницы визуализирует точность классификатора путем сравнения фактических и прогнозируемых классов. Матрица двоичной путаницы состоит из sqares: 
TP: Прогнозируемые значения правильно прогнозируются как фактические положительные значения.
FP: Прогнозируемые значения неверно предсказывали фактический положительный результат. т. е. отрицательные значения прогнозируются как положительные
FN: Ложноотрицательный результат: положительные значения прогнозируются как отрицательные.
TN: Прогнозируемые значения правильно прогнозируются как фактические отрицательные значения.
Вычисление показателей по матрице путаницы#
Матрица путаницы может использоваться для расчета различных показателей, которые оценивают эффективность модели классификации. Некоторые распространенные показатели включают:
Accuracy: доля правильно классифицированных экземпляров, рассчитываемая как (TP + TN) / (TP + TN + FP + FN).
Precision: доля истинных положительных прогнозов среди всех положительных прогнозов, рассчитываемая как TP / (TP + FP).
Recall: Доля истинных положительных прогнозов среди всех реальных положительных примеров, рассчитываемая как TP / (TP + FN).
F1-score: среднее гармоническое значение точности и запоминания, рассчитываемое как 2 * (Точность * запоминание) / (Точность + запоминание).
Создание матрицы путаницы в Python#
В Python вы можете создать матрицу путаницы, используя функцию confusion_matrix из модуля sklearn.metrics:
from sklearn.metrics import confusion_matrix
import numpy as np
import matplotlib.pyplot as plt
# Предположим, у вас есть классификационная модель и ее прогнозы
y_pred = [0, 1, 1, 0, 1, 0, 1, 0, 1]
y_true = [0, 1, 1, 0, 0, 1, 1, 0, 0]
# Create a confusion matrix
cm = confusion_matrix(y_true, y_pred)
# Создайте матрицу путаницы
print(cm)
# Вычислите показатели по матрице путаницы
accuracy = (cm[0, 0] + cm[1, 1]) / (cm[0, 0] + cm[1, 1] + cm[0, 1] + cm[1, 0])
precision = cm[0, 0] / (cm[0, 0] + cm[0, 1])
recall = cm[0, 0] / (cm[0, 0] + cm[1, 0])
f1_score = 2 * (precision * recall) / (precision + recall)
print("Accuracy:", accuracy)
print("Precision:", precision)
print("Recall:", recall)
print("F1-score:", f1_score)
[[3 2]
[1 3]]
Accuracy: 0.6666666666666666
Precision: 0.6
Recall: 0.75
F1-score: 0.6666666666666665
Этот код создает матрицу путаницы для модели классификации и вычисляет accuracy, precision, recall, and F1-score, используя матрицу путаницы.
Визуализация матрицы путаницы#
Вы также можете визуализировать матрицу путаницы, используя тепловую карту:
import seaborn as sns
import matplotlib.pyplot as plt
sns.set()
plt.figure(figsize=(8, 8))
sns.heatmap(cm, annot=True, cmap="YlGnBu")
plt.xlabel("Predicted labels")
plt.ylabel("True labels")
plt.title("Confusion Matrix")
plt.show()
Этот код создает тепловую карту матрицы путаницы с предсказанными метками на оси x и истинными метками на оси y.