Встречается на собеседованиях • сегодня

Как решаешь проблему сильного дисбаланса данных для мультиклассовой классификации

Для борьбы с дисбалансом в мультиклассовой классификации применяют несколько подходов:

  1. Взвешивание классов - задаем веса классов обратно пропорционально их частоте:
python
class_weights = compute_class_weight('balanced', classes=np.unique(y), y=y)
model = RandomForestClassifier(class_weight=class_weights)
  1. Сэмплирование:

    • Oversampling (SMOTE для мультикласса)
    • Undersampling (Tomek links, ClusterCentroids)
  2. Метрики - используем F1-score (macro/micro) вместо accuracy:

python
from sklearn.metrics import f1_score
f1_score(y_true, y_pred, average='macro')
  1. Ансамбли - например, BalancedRandomForestClassifier

  2. Стоимость ошибки - вводим разную стоимость ошибок для разных классов

Важно тестировать комбинации методов и оценивать на кросс-валидации, так как oversampling может привести к переобучению. Для мультикласса особенно эффективен SMOTE-NC (для категориальных признаков) или ADASYN.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы