Вопрос или проблема
Мы хотим измерить полноту (или уровень ложных отрицаний) для нашей модели машинного обучения. Проблема в том, что Положительные случаи встречаются только в <0,1% всех случаев, и мы не можем позволить себе аннотировать объем данных, необходимый для корректной оценки.
Измерение точности не вызывает проблем.
Существуют ли какие-либо методы для работы с такими наборами данных?
Спасибо
Мы уже пробовали методы выборки для увеличения доли положительных случаев в наших данных, которые мы аннотируем. Однако это создает значительную предвзятость в оценке полноты, что не устраивает нашего работодателя.
Из-за правил защиты данных мы не можем передать процесс аннотирования на аутсорсинг.
Ответ или решение
Измерение полноты (recall) или уровня ложных отрицательных (false negative rate) в сильно несбалансированных наборах данных может представлять собой значительную задачу. В вашем случае, когда положительные случаи составляют менее 0.1% от всех случаев и нет возможности провести полную аннотацию данных, предлагаю рассмотреть несколько методов, которые могут помочь в этой ситуации.
-
Использование методов внутренней оценки: Если у вас есть возможность работать с небольшими подвыборками данных, можно применять кросс-валидацию, выделяя части положительных примеров. Например, вы можете использовать метод Leave-One-Out или k-fold кросс-валидацию, где часть данных, содержащая положительные примеры, будет использоваться для оценки модели.
-
Синтетическое создание данных: Попробуйте генерировать синтетические положительные примеры с использованием методов, таких как SMOTE (Synthetic Minority Over-sampling Technique) или ADASYN. Хотя вы уже упомянули, что пробовали методы выборки, если вы будете аккуратно генерировать синтетические примеры на основе существующих данных, это может помочь избежать значительного смещения.
-
Альтернативные метрики для оценки модели: Вместо того чтобы прямиком измерять полноту и уровень ложных отрицательных, рассмотрите возможность использования других метрик, таких как F1-score, ROC AUC или PR AUC, которые могут дать вам лучшее представление о производительности модели, особенно в условиях несбалансированных данных.
-
Обучение с учетом несбалансированности данных: Используйте методы, такие как взвешивание классов, где модель будет уделять больше внимания положительным классам во время обучения. Это может помочь модели лучше выявлять искомые положительные случаи.
-
Адаптированные методы оценки: Вы можете применить пороговое значение для вашего классификатора для повышения полноты за счет снижения точности (precision). Это может быть сделано путем анализа кривой Precision-Recall или ROC, а затем выбора порогового значения, где полнота будет в приемлемом диапазоне.
-
Анализ известных случаев: Если у вас есть известные случаи положительного класса, попробуйте сфокусироваться на их детальном анализе. Это может помочь выявить закономерности, которые в будущем можно использовать для предсказания положительных примеров на более общем уровне.
-
Локальная проверка: При возможности выбирайте небольшие наборы данных с положительными классами для аннотации и тестирования. Это может быть окно в реальность и поможет вам понять, насколько хорошо ваша модель работает.
Обратите внимание, что важно учитывать специфику вашего конкретного случая, включая доступные ресурсы и ограничения. Удачи в оценке вашей модели!