Перейти к основному содержимому

Базовые меры качества многоклассовой классификации

Ранее мы уже рассматривали оценку качества регрессионных прогнозов, когда целевой отклик - вещественное число: yRy\in\mathbb{R}. Теперь рассмотрим оценку качества прогнозов в задаче классификации, в которой целевая величина принимает одно из CC дискретных величин:

y{1,2,...C}.y\in\{1,2,...C\}.
Несмещённая оценка

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

Далее будут приведены различные стандартные меры оценки качества классификации. При этом важно держать в голове конечную меру качества и её связь со стандартными мерами, рассматриваемыми далее.

Точность и частота ошибок

Самой простой и популярной мерой качества является точность классификации (accuracy), которая измеряет долю верных предсказаний:

accuracy=1Nn=1NI{y^(xn)=yn}\text{accuracy}=\frac{1}{N}\sum_{n=1}^N \mathbb{I}\{\hat{y}(\mathbf{x}_n)=y_n\}

Также можно вычислять частоту ошибок (error rate) как долю неверных предсказаний:

error rate=1Nn=1NI{y^(xn)yn}=1Nn=1N(NI{y^(xn)=yn})=1accuracy\begin{align} \text{error rate} &=\frac{1}{N}\sum_{n=1}^N \mathbb{I}\{\hat{y}(\mathbf{x}_n)\ne y_n\} \\ &=\frac{1}{N}\sum_{n=1}^N (N-\mathbb{I}\{\hat{y}(\mathbf{x}_n)= y_n\}) \\ &=1-\text{accuracy} \end{align}

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

Точность и частота ошибок дают агрегированную картину по всем классам, по которой мы не можем понять, на каких именно классах модель чаще всего ошибалась. Для более детального анализа используется матрица ошибок (confusion matrix) ARC×CA\in\mathbb{R}^{C\times C} , где aija_{ij} показывает количество случаев, когда истинный класс был равен ii, но при этом был предсказан классом jj. На диагонали будут находиться корректные классификации, а внедиагональные элементы будут показывать число ошибок разных типов.

Ниже приведён пример этой матрицы для 3х классов:

y^=1\hat{y}=1y^=2\hat{y}=2y^=3\hat{y}=3
y=1y=11030
y=2y=202015
y=3y=32530

По этой матрице видно, что в целом классификатор хорошо справился с прогнозированием (диагональные элементы относительно большие). А большая часть ошибок классификатора вызвана тем, что объекты 2-го класса он ошибочно классифицирует 3-м классом. Если классов много, то полезно визуализировать матрицу ошибок в виде тепловой карты значений, как на примере ниже:

confusion-matrix-heatmap.png

Как по матрице ошибок вычислить точность классификации (accuracy)?

Для расчёта точности нужно просуммировать все диагональные элементы (общее число верных классификаций) и разделить его на сумму всех элементов матрицы (равную общему числу объектов выборки).

Матрица цен

На практике чаще всего ошибки неравноценны между собой. Например, при классификации электронных писем на "важные", "рассылки" и "спам" не так страшно принять спам за важное письмо (и его оставить), как принять важное письмо за спам (и его удалить). Цена ошибки при классификации рассылок меньше, чем при классификации важных писем. Поэтому определяется понятие матрицы ошибок ΛRC×C\Lambda\in\mathbb{R}^{C\times C}, где λij\lambda_{ij} показывает штраф за классификацию объекта ii-го класса jj-м классом. Диагональные элементы матрицы полагаются равными нулю, поскольку они соответствуют корректным классификациям. Используя матрицу цен, можно вычислять средний штраф (average cost) при классификации всей выборки:

average cost=1Nn=1Nλyny^n=1Ni=1Cj=1Caijλij\text{average cost} = \frac{1}{N}\sum_{n=1}^N \lambda_{y_n \hat{y}_n} = \frac{1}{N}\sum_{i=1}^C \sum_{j=1}^C a_{ij}\lambda_{ij}
При какой матрице цен средний штраф совпадёт с частотой ошибок?

При штрафе равном нулю для верных классификаций и единице для неверных.