Матрица неточности#

Матрица путаницы (confusion matrix) - это таблица, используемая для оценки эффективности классификационной модели. Это широко используемый инструмент в машинном обучении для измерения точности модели. Матрица строится путем сравнения прогнозируемых меток с фактическими метками данных. Матрица обычно используется, когда целевая переменная является категориальной или двоичной.

Четыре результата матрицы неточности#

Матрица путаницы визуализирует точность классификатора путем сравнения фактических и прогнозируемых классов. Матрица двоичной путаницы состоит из sqares: image0.png

TP: Прогнозируемые значения правильно прогнозируются как фактические положительные значения.

FP: Прогнозируемые значения неверно предсказывали фактический положительный результат. т. е. отрицательные значения прогнозируются как положительные

FN: Ложноотрицательный результат: положительные значения прогнозируются как отрицательные.

TN: Прогнозируемые значения правильно прогнозируются как фактические отрицательные значения.

Вычисление показателей по матрице путаницы#

Матрица путаницы может использоваться для расчета различных показателей, которые оценивают эффективность модели классификации. Некоторые распространенные показатели включают:

  1. Accuracy: доля правильно классифицированных экземпляров, рассчитываемая как (TP + TN) / (TP + TN + FP + FN).

  2. Precision: доля истинных положительных прогнозов среди всех положительных прогнозов, рассчитываемая как TP / (TP + FP).

  3. Recall: Доля истинных положительных прогнозов среди всех реальных положительных примеров, рассчитываемая как TP / (TP + FN).

  4. 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()
_images/4e327f926585ba17a11b976dcdbf2cc3c0bb3577238ad45aa170cc025b42fa47.png

Этот код создает тепловую карту матрицы путаницы с предсказанными метками на оси x и истинными метками на оси y.