Если классы не сбалансированы, для решения проблемы можно использовать следующие методы:
- Увеличение выборки (oversampling). 13 Заключается в добавлении дополнительных примеров класса-меньшинства, чтобы сделать его более представительным. 3 Это можно сделать путём дублирования существующих примеров, генерации синтетических данных или комбинирования этих методов. 3
- Уменьшение выборки (undersampling). 36 Заключается в выкидывании части данных. 6 Например, если два класса: первый — очень большой, второй — совсем маленький, то можно выкинуть большую часть объектов первого класса, чтобы размеры классов примерно сравнялись. 6
- Модификация функции потерь. 1 Функция потерь отвечает за оценку ошибки алгоритма и определяет, как модель должна обновлять свои параметры. 1 При дисбалансе классов модификация функции потерь может повысить важность класса меньшинства. 1 Например, можно добавить штраф за ошибки в классификации класса меньшинства, чтобы минимизировать ошибки в этом классе. 1
- Использование алгоритмов с учётом весов классов. 1 Некоторые алгоритмы машинного обучения позволяют задавать веса классам в соответствии с их долей в выборке. 1 Например, в методе опорных векторов (SVM) можно задать разные штрафы за ошибки в каждом классе. 1
- Использование ансамблевых методов. 1 Ансамблевые методы могут эффективно учитывать дисбаланс классов, объединяя несколько моделей в одну. 1 Например, метод случайного леса (Random Forest) может обучаться на сбалансированных подвыборках каждого класса и комбинировать результаты. 1
- Использование пороговой вероятности. 1 Многие алгоритмы машинного обучения возвращают вероятности принадлежности к классам, а не просто метки классов. 1 Можно задать пороговую вероятность для определения, какой класс выбрать. 1 При дисбалансе классов порог можно изменить так, чтобы повысить точность в классе меньшинства. 1
Выбор метода зависит от конкретной задачи и доступных данных. 1