Multi-label classification на собеседовании Data Scientist

Готовься к собесу аналитика как в Duolingo
10 минут в день — SQL, Python, A/B, метрики. 1700+ вопросов в Telegram
Открыть Карьерник в Telegram

Карьерник — Duolingo для аналитиков: 10 минут в день тренируй SQL, Python, A/B, статистику, метрики и ещё 3 темы собеса. 1500+ вопросов в Telegram-боте. Бесплатно.

Multi-class vs multi-label

Multi-class. One label из N. Mutually exclusive. Softmax.

Image → "cat" OR "dog" OR "bird".

Multi-label. Multiple labels possible. Independent.

Article → ["politics", "economy", "Russia"]

E.g., movie genres, document tags, image objects.

Loss

Multi-label — Binary Cross-Entropy per label.

For каждой label независимо: BCE.
Sum / average по labels.

Sigmoid activation для каждого output. Probabilities independent.

loss = nn.BCEWithLogitsLoss()(logits, multi_hot_labels)

Метрики

Per-label. Accuracy, precision, recall, F1.

Aggregated:

  • Macro. Average per label. Equal weight.
  • Micro. Aggregate TP/FP/FN globally. Frequent labels dominate.
  • Weighted. Weight by label frequency.

Hamming loss. Fraction wrongly predicted labels (per item × labels).

Subset accuracy. Exact match all labels — strict.

Готовься к собесу аналитика как в Duolingo
10 минут в день — SQL, Python, A/B, метрики. 1700+ вопросов в Telegram
Открыть Карьерник в Telegram

Threshold tuning

Output sigmoid → probability per label. Need threshold к binarize.

Different optimal thresholds per label.

Label A: optimal threshold 0.5.
Label B: optimal threshold 0.3 (rare).

Tune на validation per label или globally maximize F1.

Imbalance per label

Some labels appear rarely.

Class weights в loss. Penalize misses rare labels more.

Resampling. Upsample rare label examples.

Focal loss. Down-weights easy, focuses на hard.

Связанные темы

FAQ

Это официальная информация?

Нет. Статья основана на стандартных multi-label classification practices.


Тренируйте Data Science — откройте тренажёр с 1500+ вопросами для собесов.