Вопрос или проблема
Привет, я аспирант в области компьютерных наук.
У меня есть вопрос для экспертов по ИИ или данным. Я пишу статью.
Мой набор данных – это временные ряды сенсорных данных, и соотношение аномалий (положительный класс) составляет от 5% до 6%.
Вы можете видеть изображение ниже. Я использовал classification_report из библиотеки sklearn.
Но я запутался, какое значение следует указать в разделе оценки …
Я считаю разумным указать f1-score со средним значением macro (0.40).
Это нормально?
Спасибо за ваше объяснение!
Классические метрики оценки сильно зависят от искажённых данных. В вашем случае, поскольку у вас несбалансированные данные, вам определенно следует избегать таких метрик, как точность. Например,
Представьте, что у вас есть тестовые данные с 100 записями. 3 из них имеют класс A, а 97 – класс B. Я создаю эту модель:
prediction = "B"
Просто так, я всегда выдаю второй класс. Я получу точность 97%, но не смогу предсказать ни одну из записей, которые мне действительно важны.
Это важно в таких случаях, как предсказание рака, где раннее обнаружение имеет значение.
Что вы можете использовать вместо этого:
- Чувствительность
- Специфичность
- G-Mean
- F-Measure
- Метрики с весами классов, где вы придаете большее значение меньшему
Для несбалансированного набора данных вы должны указать базовую ставку (5% аномалий, 95% обычных наблюдений) вместе с выбранным вами показателем; без этого интерпретация может привести к ошибке базовой ставки.
Обычные метрики, полученные из матрицы путаницы, подойдут. Будьте осторожны с ROC AUC, он склонен к чрезмерному оптимизму по сравнению с точностью и в целом менее понятен практикам. Для сильно несбалансированных наборов данных ROC AUC будет очень близок к 1 большую часть времени.
Мне лично нравятся парные метрики, такие как точность-вызов или специфичность-чувствительность, которые отдельно сообщают о типах I и II ошибок.
Существуют также метрики, которые оценивают эти две ошибки неравномерно. F1-score сосредоточен на меньшем, например, точность 0.1 и отзыв 0.9 дает F1 0.18.
Посмотрите статью USENIX Что делать и чего не делать в машинном обучении в компьютерной безопасности, которая упоминает метрики, используемые для несбалансированных наборов данных.
Ответ или решение
Эффективные метрики оценки для несбалансированных данных
При работе с несбалансированными данными, как в вашем случае, когда аномалии составляют всего 5-6% от общего объема данных, выбор правильной метрики оценки становится критически важным. Стандартные метрики, такие как точность (accuracy), могут вводить в заблуждение, так как они не отражают качество предсказаний в отношении меньшего класса, в данном случае аномалий. Вместо этого, стоит рассмотреть использование следующих метрик:
1. F1-меры
F1-мера — это гармоническое среднее между точностью (precision) и полнотой (recall). При низкой пропорции положительных классов (аномалий) эта метрика служит хорошим показателем, так как она подчеркивает важность сбалансированного подхода между правильным выявлением положительных примеров и минимизацией ложных срабатываний.
- Precision измеряет долю истинных положительных значений среди всех предсказанных положительных.
- Recall (или полнота) показывает долю истинных положительных значений среди всех реальных положительных.
Для вашего задания, использование макро F1-меры может быть разумным решением, хотя стоит учесть также взвешенную F1-меру, которая учитывает пропорции классов.
2. Матрица ошибок
Матрица ошибок (confusion matrix) — это еще один полезный инструмент для визуализации результатов классификации. Она позволяет проанализировать количество правильно и неправильно классифицированных примеров для каждого класса. Основные компоненты матрицы ошибок включают:
- TP (истинно положительные): правильно предсказанные аномалии
- FP (ложно положительные): неверно предсказанные аномалии
- TN (истинно отрицательные): правильно предсказанные нормальные наблюдения
- FN (ложно отрицательные): неверно предсказанные нормальные наблюдения
3. Полнота и специфичность
Эти метрики отражают различные аспекты оценки:
- Полнота (Sensitivity): процент правильно классифицированных положительных примеров.
- Специфичность: доля правильно классифицированных отрицательных примеров.
Использование пары полнота-специфичность даст более полное представление о работе вашей модели.
4. Площадь под кривой ROC (ROC AUC)
Хотя AUC-ROC является популярной метрикой, к ней следует подходить с осторожностью, особенно при работе с сильно несбалансированными данными. Значение AUC в таком случае зачастую будет близко к 1, что может быть вводящим в заблуждение. Лучше использовать эту метрику в паре с другими, такими как Precision-Recall.
5. Взвешенные метрики
При оценке модели для несбалансированных данных полезно использовать взвешенные метрики, которые придают больший вес меньшему классу (аномалиям). Это позволит вашему алгоритму «обратить внимание» на случайные аномалии, что особенно важно в случаях, когда упущение аномалии может повлечь серьезные последствия (например, в медицинских или промышленных приложениях).
Заключение
Ваша интуиция отчитать F1-меру в 0.40 может быть отстойной, однако данную оценку стоит проиллюстрировать другими метриками, такими как полнота, специфичность и точность. Также следует сообщить о метрическом контексте, т.е. процентах классов в наборе данных. Это обеспечит лучшее понимание и интерпретацию результатов вашей классификации.
Не забывайте, что каждое исследование уникально, поэтому возможность комбинирования и применения различных метрик может быть наилучшим подходом для полной и детальной оценки производительности модели.