Апсемплинг — это увеличение числа примеров в наборе данных, чаще всего для классов, которых в выборке слишком мало. Его применяют, чтобы уменьшить дисбаланс классов и снизить перекос модели в сторону более частого класса.
Содержание статьи
Как работает апсемплинг
Апсемплинг добавляет новые примеры для миноритарного класса, пока распределение классов не станет более ровным. Новые данные могут получаться либо простым дублированием существующих объектов, либо синтезом новых точек на основе уже имеющихся.
Проблема дисбаланса возникает, когда один класс встречается заметно чаще другого. В такой ситуации модель может показывать высокую общую точность, но плохо распознавать редкий класс. Для задач классификации это особенно заметно, если система почти всегда выбирает самый массовый вариант.
Апсемплинг используют именно как способ балансировки данных. Он не меняет цель задачи и не исправляет ошибки разметки. Его задача уже на этапе подготовки выборки дать модели больше сигналов от недопредставленного класса.
Зачем нужен апсемплинг
Апсемплинг нужен для того, чтобы модель лучше училась на редких примерах и не игнорировала их при обучении. Это особенно полезно, когда малый класс важен с практической точки зрения, но плохо представлен в данных.
Если в датасете один класс сильно доминирует, алгоритм начинает подстраиваться под него. Внешне метрики могут выглядеть приемлемо, но по редкому классу качество будет слабым. Поэтому одной проверки количества объектов по классам недостаточно: обычно дополнительно смотрят на ROC-кривую, precision-recall и другие метрики качества классификации.
Главный смысл апсемплинга в том, чтобы дать модели больше обучающих примеров там, где данных мало. Это помогает сделать границу разделения классов менее смещённой.
Чем апсемплинг в машинном обучении отличается от других значений термина
В машинном обучении апсемплинг означает увеличение числа объектов в выборке для балансировки классов. В обработке сигналов и изображений этот термин тоже используется, но там он описывает другой процесс.
В цифровой обработке сигналов речь идёт об увеличении частоты дискретизации. Для этого между исходными значениями добавляют новые точки и затем восстанавливают сигнал интерполяцией.
В обработке изображений термин может относиться к увеличению разрешения или возврату изображения к более крупному размеру после уменьшения. В этом случае добавляются пиксели, а не новые объекты класса в таблице признаков.
Поэтому при чтении документации или статьи всегда полезно смотреть на контекст. Одно слово, а задачи разные.
Какие плюсы и минусы есть у апсемплинга
Апсемплинг помогает выровнять распределение классов, но вместе с пользой приносит и риски. Его выбирают не автоматически, а после проверки структуры данных и поведения модели.
Преимущества
Главный плюс в том, что апсемплинг не удаляет объекты мажоритарного класса. Это отличает его от даунсемплинга, где часть данных приходится отбрасывать.
- Нет потери информации из-за удаления примеров из большого класса.
- Можно увеличить обучающую выборку, даже если собрать новые реальные данные трудно.
- Подходит для редких событий, когда миноритарный класс встречается нечасто.
Недостатки
С ростом числа объектов увеличиваются вычислительные затраты и риск переобучения. А если новые точки создаются неудачно, в данных может появиться лишний шум.
- Переобучение возможно, особенно при простом дублировании примеров.
- Шум в данных может усиливаться, если синтетические объекты плохо отражают реальную структуру класса.
- Обучение становится тяжелее, потому что объём выборки растёт.
Какие методы апсемплинга используются чаще всего
Чаще всего используют случайный оверсемплинг, SMOTE, Borderline SMOTE, ADASYN и аугментацию данных. Они отличаются тем, как именно создаются дополнительные примеры и какие области пространства признаков затрагиваются.
Случайный оверсемплинг
Случайный оверсемплинг — это простое дублирование объектов миноритарного класса до нужного объёма. Метод легко реализуется и часто служит базовой отправной точкой для сравнения.
У него есть очевидное ограничение: модель снова и снова видит одни и те же точки. Из-за этого она может слишком плотно подстроиться под существующие примеры и хуже обобщать на новых данных.
При этом у метода есть практический плюс. Он не требует сложных предположений о форме распределения и почти всегда быстро внедряется в пайплайн подготовки данных.
SMOTE
SMOTE создает синтетические объекты миноритарного класса, интерполируя признаки между близкими точками. За счёт этого метод не просто копирует примеры, а добавляет новые варианты внутри уже существующей структуры данных.
Общая логика у SMOTE такая:
- Для каждой точки миноритарного класса ищутся ближайшие соседи того же класса.
- Выбирается один из соседей.
- На отрезке между двумя точками создаётся новая синтетическая точка.
- Процесс повторяется столько раз, сколько нужно для увеличения класса.
Сильная сторона SMOTE в том, что он уменьшает зависимость от простого дублирования. Но есть и обратная сторона: синтетические точки могут попадать в зоны, где классы в реальности разделены не так чётко, и тогда возрастает шум.
Borderline SMOTE
Borderline SMOTE строит новые примеры вблизи границы между классами. Метод пытается усиливать именно те участки, где модели труднее всего принимать решение.
Сначала алгоритм ищет объекты миноритарного класса, рядом с которыми много объектов мажоритарного класса. Такие точки считаются более трудными для классификации. После этого синтетические примеры создаются вокруг них, а не равномерно по всему классу.
Такой подход помогает сосредоточиться на пограничных случаях. Но если возле границы уже много шума, результат тоже может ухудшиться.
ADASYN
ADASYN распределяет число создаваемых объектов неравномерно: больше новых точек появляется там, где миноритарный класс представлен слабее и где классификация труднее. Это делает метод более чувствительным к локальной структуре данных.
В упрощённом виде процесс выглядит так:
- Для всего набора строится модель ближайших соседей.
- Для каждой точки миноритарного класса оценивается, сколько рядом объектов другого класса.
- Чем труднее область, тем больше синтетических точек в ней создаётся.
- Новые объекты формируются интерполяцией, как и в SMOTE.
ADASYN близок к SMOTE по идее, но сильнее смещает внимание на трудные зоны. За это приходится платить большей чувствительностью к шумным границам.
Аугментация данных
Аугментация данных создаёт новые примеры через допустимые преобразования исходных объектов. Этот подход особенно распространён в компьютерном зрении и обработке текста.
Для изображений это могут быть обрезка, отражение, размытие и другие изменения. Для текстов — замена слов на близкие по смыслу варианты или построение фраз с тем же смыслом. Но любые преобразования нужно проверять на сохранение значения данных.
Если преобразование меняет смысл объекта, аугментация уже вредит. Классический риск — ситуация, когда после преобразования объект начинает соответствовать другому классу.
Какой метод выбрать
Выбор метода зависит от типа данных, степени дисбаланса и того, насколько чувствительна модель к шуму и переобучению. Универсального варианта нет, поэтому обычно сравнивают несколько подходов на одной и той же валидационной схеме.
Если нужен простой базовый вариант, начинают со случайного оверсемплинга. Если важно уменьшить повторение одинаковых точек, чаще смотрят в сторону SMOTE. Когда основная проблема сосредоточена около границы классов, рассматривают Borderline SMOTE или ADASYN.
| Метод | Как создаются новые данные | Основной риск |
| Случайный оверсемплинг | Дублирование существующих объектов | Переобучение |
| SMOTE | Интерполяция между близкими точками миноритарного класса | Шум и пересечение классов |
| Borderline SMOTE | Генерация точек около границы классов | Усиление шумных пограничных зон |
| ADASYN | Больше точек в трудных областях | Чувствительность к локальному шуму |
| Аугментация данных | Преобразование исходных объектов | Искажение смысла данных |
Как проверить, помог ли апсемплинг
Проверять апсемплинг нужно по качеству модели на отложенных данных, а не только по тому, что классы стали равны по числу объектов. Сам факт балансировки ещё не означает улучшение результата.
Чаще всего смотрят на метрики, которые лучше отражают работу по редкому классу. Для бинарной классификации это могут быть ROC-кривые и precision-recall кривые. Если после апсемплинга модель стала лучше различать миноритарный класс без заметного роста ошибок, метод сработал в нужную сторону.
Отдельно полезно проверять, где именно выросло качество: на обучении, на валидации или только на тренировочной выборке. Если улучшение видно только на обучающих данных, это может указывать на переобучение.
Что происходит с апсемплингом в новых исследованиях
В новых работах внимание часто смещается к вариантам SMOTE и к генеративным подходам на базе нейросетей. Цель одна: получить более правдоподобные дополнительные данные и уменьшить искажение распределения миноритарного класса.
В литературе описываются расширения SMOTE для более сложных сценариев, включая многоклассовую и многометочную классификацию. Также изучаются методы, где для генерации примеров используют нейросети, в том числе генеративно-состязательные сети.
Такие подходы могут давать качественные синтетические данные, но становятся тяжелее в обучении и настройке. Поэтому на практике классические методы апсемплинга по-прежнему остаются базовыми инструментами.
Кратко: что важно запомнить
Апсемплинг — это способ увеличить число примеров редкого класса, чтобы уменьшить дисбаланс данных. Он полезен, когда модель игнорирует миноритарный класс или обучается с перекосом.
- Случайный оверсемплинг прост, но может усиливать переобучение.
- SMOTE создаёт синтетические точки между существующими примерами.
- Borderline SMOTE фокусируется на трудных точках около границы классов.
- ADASYN добавляет больше данных в самые проблемные области.
- Аугментация полезна для изображений и текстов, если не меняет смысл объекта.
Правильный апсемплинг оценивают по метрикам модели на отложенных данных, а не по самому факту увеличения выборки.