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

«Какие методы решения проблемы несбалансированных выборок знаешь» — вопрос из категории Машинное обучение, который задают на 33% собеседований Аналитик Данных. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для работы с несбалансированными выборками применяют следующие методы:

  1. Взвешивание классов — присвоение больших весов ошибкам для меньшего класса в функции потерь.
    Пример в sklearn:
    model = LogisticRegression(class_weight='balanced')
  1. Сэмплирование:

    • Oversampling (SMOTE) — увеличение меньшего класса через синтетические примеры.
    from imblearn.over_sampling import SMOTE
    smote = SMOTE()
    X_res, y_res = smote.fit_resample(X, y)
*   **Undersampling** — уменьшение большего класса (может потерять информацию).
  1. Ансамбли (например, BalancedRandomForest) — алгоритмы со встроенной балансировкой.

  2. Метрики вместо accuracy — F1, Precision-Recall, ROC-AUC, чтобы избежать misleading accuracy.

Выбор метода зависит от данных и задачи. SMOTE + ансамбли часто дают лучший результат.