Ответ
Сбалансированный класс — это когда распределение целевой переменной в данных примерно равное (например, 50% положительных и 50% отрицательных примеров). В несбалансированных данных один класс значительно преобладает (например, 95% одного класса и 5% другого), что может ухудшить качество модели.
Пример несбалансированных данных:
from sklearn.datasets import make_classification
X, y = make_classification(n_samples=1000, weights=[0.9, 0.1])
print(sum(y == 0), sum(y == 1)) # Пример вывода: 900, 100
Методы борьбы с дисбалансом:
- Взвешивание классов (class_weight в sklearn)
- Оверсэмплинг (SMOTE, RandomOverSampler)
- Андерсэмплинг (RandomUnderSampler)
- Использование метрик (F1, ROC-AUC вместо accuracy)