Как пользоваться
- Вставьте матрицу, по строке на истинный класс:
50 3 2; 5 40 5; 0 4 41. - При желании добавьте названия классов в том же порядке, например
кошка собака птица. - Accuracy и macro F1 — вверху, другие общие метрики — ниже, затем точность, полнота, F1 и support по классам.
Формулы
Для класса c: TP — на диагонали, FP — остальная часть его столбца, FN — остальная часть его строки.
- Точность = TP/(TP + FP), полнота = TP/(TP + FN), F1 = 2TP/(2TP + FP + FN).
- Accuracy = след матрицы / сумма.
- Macro — среднее по классам; weighted — среднее с весами по support.
- MCC = (c·s − Σ pₖtₖ) / √((s² − Σ pₖ²)(s² − Σ tₖ²)), где c — след, s — сумма, tₖ — суммы строк, pₖ — суммы столбцов.
- Каппа Коэна κ = (p₀ − pₑ)/(1 − pₑ), где p₀ = accuracy, pₑ = Σ pₖtₖ / s².
Пример
Спам-фильтр на 100 письмах: спам распознан как спам — 40, спам как не спам — 10, обычное письмо как спам — 5, обычное как обычное — 45. Матрица: 40 10; 5 45.
- Accuracy = 85/100 = 0,85.
- Спам: точность 40/45 = 0,888889, полнота 40/50 = 0,8, F1 80/95 = 0,842105.
- Не спам: точность 45/55 = 0,818182, полнота 0,9, F1 90/105 = 0,857143.
- Macro F1 = 0,849624. MCC = (40·45 − 5·10)/√(45·55·50·50) = 0,703526, κ = (0,85 − 0,5)/0,5 = 0,7.
Советы и частые ошибки
- Проверьте ориентацию: если поменять строки и столбцы, точность и полнота поменяются местами.
- При несбалансированных классах одна accuracy вводит в заблуждение — смотрите полноту малых классов, macro F1 или MCC.
- Для медицинской таблицы 2×2 с чувствительностью, специфичностью и прогностической ценностью подойдёт калькулятор чувствительности и специфичности.