Есть ли третий вариант усреднения метрик при дисбалансе классов и как он считается
Что проверяют
Знаете ли вы все способы усреднения и понимаете ли, какой из них честнее при перекосе классов. Обычно к этому моменту уже названы макро и микро, и спрашивают третий.
Как отвечать
Третий это взвешенное усреднение, а всего распространённых способов четыре:
- micro: складываются все истинно положительные, ложно положительные и ложно отрицательные по всем классам, и метрика считается один раз по суммам. Каждый объект вносит равный вклад, поэтому крупный класс определяет результат. В многоклассовой задаче с одной меткой на объект micro-точность, полнота и F-мера совпадают с долей верных ответов;
- macro: метрика считается отдельно для каждого класса, затем берётся простое среднее. Все классы равнозначны, поэтому провал на редком классе сразу виден. Это обычный выбор, когда редкий класс и есть цель;
- weighted: то же, что macro, но среднее взвешено числом объектов каждого класса. Формально это среднее по классам, а по смыслу оно снова тянет к крупным классам, зато учитывает их разный размер;
- samples: для задач с несколькими метками на объект, метрика считается по каждому объекту и усредняется.
Правило выбора стоит проговорить прямо: важен редкий класс, берите macro; важна общая доля правильных решений по потоку, берите micro; weighted удобен как компромисс для отчёта, но он маскирует провал на редком классе, и полагаться на него при дисбалансе опасно.
Полезно добавить, что при сильном перекосе вообще смотрят не на усреднённую F-меру, а на метрики самого редкого класса, на кривую точности и полноты и на площадь под ней, потому что площадь под ROC-кривой при дисбалансе выглядит оптимистично.
Где спотыкаются
Отчитываются по weighted и не замечают, что редкий класс не предсказывается вовсе.
Считают, что accuracy и micro-F1 разные вещи в обычной многоклассовой задаче.
Сравнивают модели по метрикам с разным способом усреднения.