Влияние количества отрицательных выборок, используемых в сильно несбалансированном наборе данных (XGBoost)

#machine-learning #xgboost

#машинное обучение #xgboost

Вопрос:

Я пытаюсь смоделировать классификатор с использованием XGBoost на сильно несбалансированном наборе данных с ограниченным количеством положительных выборок и практически бесконечным количеством отрицательных выборок. Возможно ли, что наличие слишком большого количества отрицательных выборок (что делает набор данных еще более несбалансированным) ослабит прогностическую способность модели? Есть ли причина ограничить количество отрицательных выборок помимо времени выполнения?

Я знаю о scale_pos_weight параметре, который должен решить проблему, но моя интуиция подсказывает, что даже этот метод имеет свои пределы.

Ответ №1:

Чтобы ответить на ваш вопрос напрямую: добавление большего количества отрицательных примеров, вероятно, снизит эффективность принятия решений обученным классификатором. Для отрицательного класса выберите наиболее репрезентативные примеры и отбросьте остальные.

Обучение на основе несбалансированного набора данных может повлиять на прогностическую способность и даже на способность классификатора вообще сходиться. Обычно рекомендуемая стратегия заключается в поддержании одинаковых размеров обучающих примеров для каждого из классов. Влияние дисбаланса классов на обучение зависит от формы пространства принятия решений и ширины границ между классами. Чем они шире и чем проще пространство для принятия решений, тем успешнее обучение даже для несбалансированных наборов данных.

TL; DR

Для краткого обзора методов несбалансированного обучения я рекомендую эти две статьи:

Существует пакет Python под названием imbalanced-learn , который содержит обширную документацию по алгоритмам, которые я рекомендую для углубленного изучения.

Комментарии:

1. Спасибо! Я должен добавить, что реальные данные также очень несбалансированы (вероятно, миллионы негативов на один позитив). Нужно ли мне все еще стремиться к сбалансированному набору данных?

2. К сожалению, классификатор или процедура обучения не заботятся о соотношениях в реальном мире. В случае, если у вас есть, я бы тщательно изучил предоставленные мной ссылки и попытался использовать предложенные алгоритмы.