Заполнение пропущенных значений

Материал из MachineLearning.

Перейти к: навигация, поиск
Статья написана с использованием LLM GPT-5.5 Thinking и проверена участником Vladimir Garanin


Заполнение пропущенных значений (англ. Missing Data Imputation) — совокупность методов восстановления отсутствующих значений в наборах данных. Пропуски возникают при сборе, хранении или передаче данных и являются одной из наиболее распространённых проблем анализа данных и машинного обучения. Корректная обработка пропусков позволяет уменьшить потерю информации, повысить качество моделей и снизить риск систематических ошибок.

В зависимости от природы данных и механизма возникновения пропусков применяются как простые статистические методы заполнения, так и сложные алгоритмы, основанные на регрессии, методе k ближайших соседей, автокодировщиках и других моделях машинного обучения.

Содержание

Причины возникновения пропусков

Пропущенные значения могут возникать по различным причинам:

  • отказ измерительного оборудования;
  • ошибки ввода данных;
  • потеря информации при передаче;
  • отказ пользователя отвечать на отдельные вопросы анкеты;
  • объединение нескольких источников данных;
  • намеренное удаление конфиденциальной информации.

Перед выбором метода заполнения важно понимать, почему появились пропуски, поскольку разные механизмы требуют различных подходов.

Механизмы возникновения пропусков

В статистике принято выделять три основных механизма возникновения пропущенных значений[1].

MCAR

Missing Completely At Random (MCAR) означает, что вероятность появления пропуска никак не зависит ни от наблюдаемых, ни от ненаблюдаемых данных.

Например, часть измерений потерялась из-за случайного сбоя оборудования.

В этом случае удаление объектов с пропусками обычно не приводит к смещению оценок, хотя уменьшает объём выборки.

MAR

Missing At Random (MAR) означает, что вероятность появления пропуска зависит только от наблюдаемых признаков.

Например, молодые пользователи чаще не указывают свой доход, однако возраст известен.

В такой ситуации возможно построить модель, учитывающую известные признаки при восстановлении отсутствующих значений.

MNAR

Missing Not At Random (MNAR) означает, что вероятность пропуска зависит от самого отсутствующего значения.

Например, пользователи с очень высоким доходом чаще отказываются сообщать его величину.

Такие пропуски являются наиболее сложными для анализа, поскольку восстановление требует дополнительных предположений о механизме возникновения данных.

Удаление объектов

Самым простым способом обработки пропусков является удаление объектов, содержащих отсутствующие значения.

Данный подход называется listwise deletion.

Он прост в реализации и не требует дополнительных вычислений, однако приводит к уменьшению объёма выборки.

Если пропусков много, удаление объектов может значительно снизить статистическую мощность исследования.

Кроме того, при нарушении предположения MCAR оценки параметров модели могут оказаться смещёнными.

Заполнение константой

Наиболее простым способом восстановления является замена всех пропусков некоторым фиксированным значением.

Например,

  • нулём;
  • специальным кодом («неизвестно»);
  • минимальным или максимальным допустимым значением.

Такой подход применяется редко, поскольку способен существенно исказить распределение признака.

Тем не менее он может быть полезен для категориальных признаков или при использовании моделей, самостоятельно обрабатывающих специальные значения.

Заполнение средним и медианой

Для количественных признаков часто используют заполнение средним значением

\bar x=\frac1n\sum_{i=1}^{n}x_i.

Если распределение содержит выбросы, вместо среднего обычно используют медиану.

Для категориальных признаков аналогичным образом применяется наиболее часто встречающееся значение (мода).

Подобные методы просты и быстры, однако уменьшают дисперсию признаков и могут ослаблять существующие зависимости между переменными.

Заполнение по группам

Если данные содержат естественные группы объектов, среднее или медиана могут вычисляться отдельно для каждой группы.

Например, пропущенный возраст пациента можно заменить средним возрастом пациентов того же пола и региона.

Такой подход лучше учитывает структуру данных и обычно превосходит глобальное заполнение средним значением.

Интерполяция

Для временных рядов широко используется интерполяция.

Если пропущенное значение располагается между двумя известными наблюдениями

x_t

и

x_{t+1},

то простейшая линейная интерполяция вычисляется как значение на прямой, соединяющей соседние точки.

Кроме линейной интерполяции применяются сплайны, полиномиальная интерполяция и методы, учитывающие сезонность временных рядов.

Метод k ближайших соседей

Одним из наиболее популярных алгоритмов является заполнение при помощи метода k ближайших соседей (KNN Imputation).

Для объекта с пропущенным значением находятся наиболее похожие объекты по остальным признакам.

После этого отсутствующее значение восстанавливается как среднее (или наиболее частое значение) среди найденных соседей.

Метод хорошо сохраняет локальную структуру данных, однако требует вычисления расстояний между объектами и становится дорогостоящим на больших выборках.

Регрессионное заполнение

Более точный подход заключается в использовании регрессионной модели.

Пусть признак X_j содержит пропущенные значения. Тогда по объектам, для которых этот признак известен, строится модель

X_j=f(X_1,\ldots,X_{j-1},X_{j+1},\ldots,X_d).

После обучения модели отсутствующие значения заменяются её прогнозами.

В качестве модели могут использоваться:

Регрессионное заполнение лучше учитывает зависимости между признаками, однако может приводить к переобучению и недооценке дисперсии.

Множественная импутация

Одним из наиболее обоснованных статистических подходов считается множественная импутация (Multiple Imputation)[1].

Основная идея состоит в том, что каждое пропущенное значение восстанавливается не один раз, а несколько раз.

В результате формируется несколько полных наборов данных:

D_1,D_2,\ldots,D_m.

Каждый из них анализируется независимо, после чего результаты объединяются по правилам Рубина.

Такой подход позволяет учитывать неопределённость восстановления и получать более корректные оценки дисперсии.

Наиболее известной реализацией множественной импутации является алгоритм MICE (Multiple Imputation by Chained Equations), в котором признаки последовательно восстанавливаются с помощью отдельных регрессионных моделей.

EM-алгоритм

Если предполагается вероятностная модель данных, пропущенные значения могут быть восстановлены при помощи EM-алгоритма.

Алгоритм состоит из двух шагов.

На E-шаге вычисляются оценки скрытых переменных и пропущенных значений.

На M-шаге параметры модели переоцениваются при фиксированных оценках, полученных на предыдущем шаге.

Эти этапы повторяются до сходимости.

EM-алгоритм широко используется при работе с гауссовыми смесями и другими вероятностными моделями.

MissForest

Современным непараметрическим методом заполнения является алгоритм MissForest[1].

Алгоритм итеративно обучает случайные леса для каждого признака, содержащего пропуски.

На каждой итерации:

  • выбирается один признак с пропущенными значениями;
  • по остальным признакам обучается случайный лес;
  • отсутствующие значения заменяются прогнозами модели.

Процесс повторяется до тех пор, пока изменения между итерациями не станут достаточно малы.

MissForest хорошо работает как с количественными, так и с категориальными признаками и часто превосходит более простые методы заполнения.

Глубокое обучение

В последние годы для восстановления пропущенных данных всё чаще используются автокодировщики и другие глубокие нейронные сети.

Автокодировщик обучается восстанавливать исходные данные по их неполному представлению.

После обучения модель способна предсказывать отсутствующие значения, используя скрытое представление объекта.

Подобные методы особенно эффективны для изображений, временных рядов и данных высокой размерности.

Обработка пропусков современными алгоритмами

Некоторые алгоритмы машинного обучения способны работать с пропущенными значениями без предварительной импутации.

Например, CatBoost автоматически рассматривает отсутствие значения как отдельный вариант разбиения при построении дерева.

Алгоритмы LightGBM и XGBoost также умеют выбирать направление перехода для объектов с пропущенными значениями при построении деревьев решений.

Благодаря этому во многих задачах предварительное заполнение пропусков становится необязательным.

Сравнение методов

Различные методы обладают своими достоинствами и недостатками.

Метод Достоинства Недостатки
Удаление объектов Простота Потеря информации
Среднее или медиана Очень быстро Искажает распределение
KNN Сохраняет локальную структуру Медленно работает на больших данных
Регрессионная импутация Учитывает зависимости между признаками Возможное переобучение
MICE Корректно учитывает неопределённость Высокая вычислительная сложность
MissForest Высокая точность Большие вычислительные затраты
Автокодировщики Хорошо работают на сложных данных Требуют большого объёма данных

Практические рекомендации

Выбор метода зависит от природы данных, количества пропусков и решаемой задачи.

На практике обычно придерживаются следующих рекомендаций:

  • при небольшом числе пропусков использовать медиану или моду;
  • при наличии выраженных зависимостей между признаками применять регрессионные методы;
  • для смешанных данных использовать MissForest или MICE;
  • для временных рядов использовать интерполяцию;
  • для изображений и других сложных объектов применять модели глубокого обучения.

Не существует универсального метода, одинаково хорошо работающего на всех наборах данных. Поэтому выбор способа импутации обычно определяется экспериментальным сравнением нескольких подходов.

См. также

Литература


  • Little, R. J. A., Rubin, D. B. Statistical Analysis with Missing Data. Wiley, 2002.
  • Rubin, D. B. Multiple Imputation for Nonresponse in Surveys. Wiley, 1987.
  • Buuren, S. Flexible Imputation of Missing Data. CRC Press, 2018.
  • Stekhoven, D. J., Bühlmann, P. MissForest—non-parametric missing value imputation for mixed-type data. Bioinformatics, 2012.
  • García-Laencina, P. J., Sancho-Gómez, J. L., Figueiras-Vidal, A. R. Pattern classification with missing data: a review. Neural Computing and Applications, 2010.
Личные инструменты