Точность (Accuracy)

Точность (Accuracy) - ключевая метрика для оценки классифицирующих моделей

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

Формула расчета accuracy

Точность рассчитывается как отношение количества правильно классифицированных примеров к общему количеству примеров в тестовом наборе:

Accuracy = (TP + TN) / (TP + TN + FP + FN)

Где:

  • TP (True Positives) - количество положительных примеров, классифицированных как положительные

  • TN (True Negatives) - количество отрицательных примеров, классифицированных как отрицательные

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

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

Пример расчета accuracy

Рассмотрим задачу бинарной классификации на выявление спама в электронных письмах. Предположим, у нас есть тестовый набор из 100 писем, из которых 80 не являются спамом, а 20 - спам. Модель классифицировала эти письма следующим образом:

  • 75 писем классифицированы правильно как не спам (TN = 75)

  • 15 писем спама классифицированы правильно (TP = 15)

  • 5 писем, не являющихся спамом, ошибочно классифицированы как спам (FP = 5)

  • 5 писем спама ошибочно классифицированы как не спам (FN = 5)

Подставив эти значения в формулу accuracy, мы получим:

Accuracy = (75 + 15) / (75 + 15 + 5 + 5) = 90 / 100 = 0.9 или 90%

То есть точность данной модели на этом тестовом наборе составляет 90%.

Интерпретация значений accuracy

Значение точности лежит в диапазоне от 0 до 1 (или от 0% до 100%). Чем ближе значение к 1 (или 100%), тем более точной является модель на данном тестовом наборе.

Однако важно понимать, что высокое значение accuracy не всегда свидетельствует о хорошей работе модели. Например, в задачах с сильно несбалансированными классами, когда один класс значительно преобладает, даже тривиальная модель, которая всегда предсказывает преобладающий класс, будет иметь высокую точность. Поэтому для более полной оценки качества необходимо использовать и другие метрики, такие как precision, recall, F1-мера и матрицу ошибок.

В целом, метрика accuracy является базовой и широко используется для первичной оценки классифицирующих моделей благодаря своей простоте и наглядности. Но для более глубокого анализа качества следует применять ее в совокупности с другими метриками.

Вот пример кода на Python для вычисления accuracy классификационной модели:

from sklearn.metrics import accuracy_score
import numpy as np

# Истинные метки
true_labels = np.array([0, 1, 0, 1, 0, 1, 0, 0, 1, 1])

# Предсказанные метки
pred_labels = np.array([0, 0, 0, 1, 0, 1, 1, 0, 1, 1])

# Вычисление accuracy
accuracy = accuracy_score(true_labels, pred_labels)
print(f"Точность (Accuracy): {accuracy:.2f}")

Выход:

Точность (Accuracy): 0.80

Разберем этот пример:

  1. Мы импортируем функцию accuracy_score из модуля sklearn.metrics для вычисления точности.

  2. Создаем numpy массив true_labels с истинными метками классов для 10 примеров.

  3. Создаем numpy массив pred_labels с предсказанными метками классов для тех же 10 примеров.

  4. Вызываем функцию accuracy_score, передавая туда истинные метки true_labels и предсказанные метки pred_labels.

  5. Функция accuracy_score вычисляет долю правильно классифицированных примеров по формуле (TP + TN) / (TP + TN + FP + FN).

  6. Выводим полученное значение точности, округленное до двух знаков после запятой.

В данном примере из 10 примеров 8 были классифицированы правильно, поэтому точность составила 0.80 или 80%.

Библиотека sklearn предоставляет удобные функции для расчета различных метрик качества классификации. Также можно реализовать собственную функцию для расчета accuracy, используя формулу из определения этой метрики.

Last updated