Веса классов для несбалансированных данных
Не позволяйте преобладающему классу доминировать
«Веса классов для несбалансированных данных» — бесплатный урок Deep Learning Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Deep Learning Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Deep Learning Academy содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
When One Class Dominates
If 95 percent of your samples are one class, the model can score high by always guessing it. That is the class imbalance trap. ⚖️
Why Accuracy Lies Here
A lazy model that ignores the rare class still looks 95 percent accurate. So accuracy hides total failure on the minority you actually care about.
The Loss Follows the Majority
Each sample contributes equally to the loss, so the abundant class pulls the gradient hardest. The model learns mostly from the majority class.
Reweight the Loss
The fix is to give rare classes a heavier voice. Class weights multiply each sample's loss so minority mistakes count for more.
Bigger Weight for Rarer Class
A common recipe sets each weight inversely proportional to its class frequency. The rarer the class, the larger its weight grows.
Pass Weights to CrossEntropy
For multiclass tasks, hand a weight tensor of length C to the loss. Each entry scales the penalty for that class's errors.
import torch.nn as nn
w = torch.tensor([1.0, 9.0])
loss_fn = nn.CrossEntropyLoss(weight=w)pos_weight for Binary Tasks
For two-class problems, BCEWithLogitsLoss takes pos_weight, a single number that boosts the positive class to offset its rarity.
loss_fn = nn.BCEWithLogitsLoss(pos_weight=torch.tensor([9.0]))Sample, Don't Just Weight
Weighting is not the only tool. You can also oversample the rare class or undersample the common one to balance each batch.
Balance Batches With a Sampler
A WeightedRandomSampler draws minority samples more often, so every batch the DataLoader serves is roughly balanced by design.
from torch.utils.data import WeightedRandomSamplerFocal Loss for Hard Cases
For extreme imbalance, focal loss down-weights easy, well-classified examples so the model focuses on the hard, rare ones.
Judge by the Right Metric
After rebalancing, drop accuracy and track F1 or precision and recall. They reveal whether the rare class is finally being learned.
Quick Check
Your dataset is 95 percent negative. How do you stop the model from ignoring positives?
Recap: Give the Rare Class a Voice
Imbalance lets the majority hijack training, so you fight back with class weights, balanced sampling, or focal loss, and you judge results with F1. 💪
Часто задаваемые вопросы
Урок «Веса классов для несбалансированных данных» бесплатный?
Да — полный текст урока «Веса классов для несбалансированных данных» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Deep Learning Academy, подпишись на CoddyKit PRO. Курс Deep Learning Academy содержит 4 уроков всего.
Чему я научусь в уроке «Веса классов для несбалансированных данных»?
Не позволяйте преобладающему классу доминировать Ты практикуешь Deep Learning Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Deep Learning Academy?
Предыдущий опыт не требуется. Deep Learning Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Веса классов для несбалансированных данных»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Deep Learning Academy?
Да. Каждый урок Deep Learning Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- MSE и MAE для регрессии
- Бинарная кросс-энтропия с логитами
- Кросс-энтропия для нескольких классов
- Веса классов для несбалансированных данных