Матрица ошибок

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

Матрица ошибок
Краткое содержание

Что такое матрица ошибок

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

Матрица ошибок состоит из 4 значений:

  • True Positives (TP) - верно классифицированные положительные примеры
  • True Negatives (TN) - верно классифицированные отрицательные примеры
  • False Positives (FP) - отрицательные примеры, ошибочно классифицированные как положительные
  • False Negatives (FN) - положительные примеры, ошибочно классифицированные как отрицательные

Пример матрицы ошибок

Допустим, у нас есть модель, которая предсказывает, болен ли пациент диабетом (1) или здоров (0). Матрица ошибок для этой модели может выглядеть так:

[[50, 10],
 [5, 100]] 

Здесь значения матрицы интерпретируются следующим образом:

  • 50 пациентов верно классифицированы как здоровые (TN)
  • 10 больных ошибочно классифицированы как здоровые (FN)
  • 5 здоровых ошибочно классифицированы как больные (FP)
  • 100 больных верно классифицированы как больные (TP)

Вычисление метрик на основе матрицы ошибок

Имея матрицу ошибок, мы можем рассчитать ряд полезных метрик:

  • Точность (Accuracy) = (TP + TN) / (TP + TN + FP + FN)
  • Прецизионность (Precision) = TP / (TP + FP)
  • Полнота (Recall) = TP / (TP + FN)
  • F1-мера = 2 * (Precision * Recall) / (Precision + Recall)

Реализуем расчет этих метрик на Python:

from sklearn.metrics import confusion_matrix, accuracy_score, precision_score, recall_score, f1_score

y_true = [1, 0, 1, 1, 0, 1, 0, 0, 0, 1]  # истинные значения
y_pred = [1, 0, 1, 0, 0, 1, 1, 0, 1, 0]  # предсказанные значения

cm = confusion_matrix(y_true, y_pred)
print(cm)
# [[3 2]
#  [2 3]]

accuracy = accuracy_score(y_true, y_pred)
precision = precision_score(y_true, y_pred)  
recall = recall_score(y_true, y_pred)
f1 = f1_score(y_true, y_pred)

print(f"Accuracy: {accuracy:.2f}")    # 0.60
print(f"Precision: {precision:.2f}")  # 0.60 
print(f"Recall: {recall:.2f}")        # 0.60
print(f"F1 score: {f1:.2f}")          # 0.60

Визуализация матрицы ошибок

Для лучшего понимания матрицы ошибок ее можно визуализировать с помощью библиотеки Seaborn:

import seaborn as sns
import matplotlib.pyplot as plt

sns.heatmap(cm, annot=True, cmap='Blues', fmt='g')
plt.xlabel('Predicted')
plt.ylabel('Actual')
plt.show()

Матрица ошибок - очень полезный инструмент для оценки качества моделей классификации. Она дает четкое представление о том, какие ошибки допускает модель и позволяет рассчитать важные метрики. Визуализация матрицы ошибок помогает лучше понять ее структуру.

Надеюсь, эта статья была полезна для вас! Пишите в комментариях, используете ли вы матрицы ошибок в своих ML проектах.

Nerd IT 🌀 ML, DS, ANN, GPT
Привет! Меня зовут Семён, я работаю в сфере ML и аналитики данных и пишу в блог nerdit.ru статьи о своем опыте и том, что может пригодиться начинающим в начале их пути изучения больших данных.

Подписаться на новости Nerd IT

Не пропустите последние выпуски. Зарегистрируйтесь сейчас, чтобы получить полный доступ к статьям.
jamie@example.com
Подписаться