Как выполнить балансировку классов в несбалансированном наборе данных

#machine-learning #nlp

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

Вопрос:

У меня несбалансированный набор данных с большим количеством положительных отзывов (90%), чем отрицательных (10%), какие варианты ниже я должен использовать.

  1. Использование class_weight='balanced' в GridSearchCV (обучение и резюме) и логистическом алгоритме (обучение и тестирование)
  2. Разделите данные на наборы train, CV и test, а затем выполните передискретизацию для класса меньшинства, взяв класс большинства (в моем случае это класс ve). Таким образом, оба класса сбалансированы
  3. Недостаточная дискретизация — не учитывается из-за потери информации.

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

1. Разные методы будут по-разному влиять на результат классификации в зависимости от ваших данных, мое мнение таково, что вы должны попробовать их все и позволить результату повлиять на ваше решение.

Ответ №1:

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