Вопрос или проблема
У меня есть набор данных с 837377 наблюдениями (51% для обучения, 25% для валидации и 24% для тестирования) и 19 признаков.
Я вычислил показатель полноты, используя среднее по макро для обучения, валидации и тестирования, и получил следующие результаты:
Обучение: 0.9981845060159042
Валидация: 0.7559011239753489
Тестирование: 0.7325217067167821
Могу ли я сказать, что моя модель Random Forest для многоклассовой и несбалансированной классификации переобучается, если полнота_обучения > полнота_валидации и полнота_обучения > полнота_тестирования? Является ли полнота лучшей метрикой в данном случае?
Я предлагаю использовать микро или макро F1-меру для несбалансированных задач, таких как ваша.
Чтобы понять разницу между микро и макро метриками, прочитайте этот отличный ответ (и последующие комментарии).
Ответ или решение
Ваша ситуация с моделью Random Forest демонстрирует важные аспекты оценки качества и выявления возможного переобучения (overfitting). Рассмотрим подробнее, как макро-отзыв может помочь в этом контексте и какие метрики могут быть более подходящими.
Анализ метрик:
Вы предоставили следующие значения макро-отзыва:
- Обучающая выборка (Train): 0.9981845060159042
- Валидационная выборка (Val): 0.7559011239753489
- Тестовая выборка (Test): 0.7325217067167821
Разница между отзывом на обучающей и валидационной (или тестовой) выборках существенно велика. Это сильный индикатор того, что ваша модель, скорее всего, сталкивается с переобучением. Она показывает отличные результаты на обучающей выборке, но значительно хуже на новых данных.
Почему макро-отзыв?
Макро-отзыв усредняет полноту (recall) по всем классам, игнорируя дисбаланс данных, и поэтому он может не всегда быть оптимальным выбором, особенно в задачах с несбалансированными классами. Для таких задач важно учитывать, как модель справляется с редкими или "миноритарными" классами, где один из вариантов — F1-мера.
Альтернативные метрики:
-
F1-макро: Позволяет учесть и точность (precision), и полноту. Это более сбалансированная метрика, так как она учитывает как ложные срабатывания, так и пропуски.
-
F1-микро: Агрегирует вклад всех классов и может быть полезен при несбалансированных данных, но может завысить эффективность на крупных классах.
-
ROC AUC: Если возможен как для многоклассового случая, помогает оценить общую дискриминацию модели между классами.
-
Логарифмическая потеря (log loss): Может также давать представление о том, насколько вероятностные предсказания соответствуют истинным меткам.
Чтобы определить переобучение более точно, рекомендуется более широкий анализ, включая изучение кривых обучения и валидации, использование кросс-валидации для оценки стабильности модели и, возможно, применение методов регуляризации или настройки гиперпараметров.
Заключение:
Ваши наблюдения о макро-отзыве указывают на переобучение, и в этом контексте использование макро- или микро- F1 может предоставить более информативную оценку качества модели для несбалансированных наборов данных. Подумайте также о дополнении анализа другими метриками, чтобы получить более полное понимание поведения модели.