Толковый словарь по нейросетям и искусственному интеллекту
Веса классов
Class Weights
Категория термина
Веса классов (Class Weights) — это метод борьбы с проблемой дисбаланса данных (Data Imbalance), заключающийся в назначении разного «веса» ошибкам на классах при обучении модели. Идея в том, что ошибки на редких классах (minority class) должны «стоить дороже», чем ошибки на часто встречающихся классах (majority class). Таким образом, модель мотивируется уделять больше внимания малочисленным, но важным данным.Вместо искусственного изменения датасета (как при oversampling или undersampling), метод class weights изменяет сам процесс оптимизации — через функцию потерь.
🧠 Основная идея:
- Ошибка при классификации примера из редкого класса должна оказывать больший вклад в функцию потерь.
- Модель подстраивается так, чтобы улучшить результаты именно на классах меньшинства.
- Используется в задачах, где критично не пропускать редкие события (например, болезни, мошенничество).
⚙️ Реализация:
- Модификация функции потерь: Например, для задачи классификации с функцией кросс-энтропии:Loss=−∑i=1Nwyi⋅log(pyi)Loss = - \sum_{i=1}^{N} w_{y_i} \cdot \log(p_{y_i})где wyiw_{y_i} — вес класса, pyip_{y_i} — предсказанная вероятность правильного класса.
- Автоматический расчёт весов:
- Обычно веса выбираются обратно пропорционально частоте классов:
- Ручная настройка:
- Иногда исследователь сам задаёт веса, исходя из важности классов для конкретной задачи.
📌 Пример:
В задаче выявления заболеваний:- 95% примеров — здоровые пациенты, 5% — больные.
- Если не учитывать веса, модель будет почти всегда предсказывать «здоров».
- При использовании class weights ошибка на больном пациенте будет учитываться сильнее, и модель будет учиться лучше различать оба класса.
📌 Применение:
- Медицина: предсказание редких болезней.
- Финансовый сектор: детекция мошеннических транзакций.
- Кибербезопасность: выявление сетевых атак.
- Обработка текстов (NLP): классификация редких категорий (например, определённых эмоций).
⚖️ Преимущества и недостатки:
Преимущества:- Простая и эффективная реализация (поддерживается большинством ML-библиотек, включая PyTorch, TensorFlow, Scikit-learn).
- Не требует искусственного изменения датасета.
- Хорошо работает при сильном дисбалансе.
- Требует аккуратного подбора весов (слишком большие значения могут ухудшить точность по majority-классу).
- Может усложнить процесс оптимизации и замедлить сходимость.
- Не всегда решает проблему, если minority-класса слишком мало (в этом случае лучше комбинировать с oversampling или генеративными методами).
🧠 Связанные понятия:
- Oversampling и Undersampling — альтернативные методы балансировки данных.
- Cost-sensitive Learning — более общее направление, где стоимость ошибки зависит от класса.
- Data Imbalance — ключевая проблема, для решения которой используются class weights.