Обработка недостающих данных в алгоритмах дерева решений

Введение

Алгоритмы дерева решений остаются краеугольным камнем машинного обучения как для задач классификации, так и для задач регрессии из-за их интуитивной структуры, интерпретируемости и способности моделировать нелинейные отношения. Однако реальные наборы данных редко являются нетронутыми; они часто содержат недостающие значения, вызванные сбоями датчиков, человеческой ошибкой, проблемами интеграции данных или редакциями, мотивированными конфиденциальностью. Игнорирование этих пробелов может ухудшить производительность модели, ввести предвзятость и привести к ненадежным прогнозам. Поэтому правильная обработка недостающих данных имеет важное значение для построения надежных моделей дерева решений, которые хорошо обобщают. Эта статья обеспечивает глубокое практическое исследование недостающих механизмов данных, традиционных и современных методов обработки и практических рекомендаций для практиков, которым необходимо развернуть деревья решений на неполных наборах данных.

Понимание недостающих данных

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

Пропавший без вести в Рандоме (MCAR)

В соответствии с МЦАР вероятность того, что значение отсутствует, полностью независима от наблюдаемых и ненаблюдаемых данных. Например, лабораторный инструмент иногда выходит из строя через случайные интервалы, не связанные с проверяемой выборкой, или респондент опроса случайно пропускает вопрос. МЦАР является самым простым типом для аналитической обработки, поскольку наблюдаемые данные остаются репрезентативной случайной выборкой полного набора данных. Однако истинный МЦАР на практике встречается редко; большинство реальных пропущений проявляет некоторую зависимость.

Пропавший без вести (MAR)

MAR возникает, когда пропущенность зависит только от наблюдаемых переменных, а не от самих недостающих значений. Например, в наборе данных кредитного риска доход может быть более вероятным для молодых заявителей (наблюдаемый возраст), но, учитывая возраст, недостающий доход не зависит от фактического уровня дохода. Многие стандартные методы расчета предполагают MAR, и методы, такие как множественные вычисления или оценка максимальной вероятности, остаются в силе при этом предположении. MAR является правдоподобным механизмом во многих деловых и научных контекстах.

Не промахнуться в случайном месте (MNAR)

В МНАР вероятность пропажи связана с самой ненаблюдаемой стоимостью. Классический пример — в опросах заработной платы: люди с высоким доходом могут отказаться раскрывать свои доходы, то есть пропажа напрямую коррелирует с недостающим значением (доходом). МНАР является наиболее сложным сценарием, поскольку недостающие значения не могут быть надежно оценены без внешней информации или специальных методов моделирования (например, моделей отбора или моделей сочетания шаблонов). Игнорирование МНАР или применение стандартных вычислений может привести к серьезному искажению.

Идентификация недостающих шаблонов данных

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

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

Последствия игнорирования недостающих данных

Многие наивные подходы, такие как удаление по списку (просто удаление строк с любым недостающим значением) или попарное удаление, все еще используются на практике, но они сопряжены со значительными затратами:

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

Традиционные методы вычисления

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

Простая одномерная ампутация

Простейшие методы заменяют недостающее значение средним, средним или режимом наблюдаемых значений для этой особенности. В то время как быстрые, эти методы игнорируют корреляции между признаками и имеют тенденцию уменьшать дисперсию, искусственно раздувая уверенность модели. Средний вычисление подходит только под MCAR и для признаков с примерно симметричными распределениями; медианное вычисление более устойчиво к выбросам. Режим вычисления используется для категориальных признаков, но может вводить искажение, если доминирующая категория не репрезентативна.

Регрессионная ампутация

Регрессионные вычисления моделируют признак с отсутствующими значениями как функцию других полных признаков. Линейная регрессия подходит для наблюдаемых записей и затем используется для прогнозирования отсутствующих. Это сохраняет отношения между переменными, но предполагает линейность и может привести к переподгонки, если одни и те же данные используются как для обучения вычислениям, так и для обучения модели. Более продвинутые версии используют итеративные методы, такие как цепные уравнения (MICE), которые циклируют через признаки до конвергенции.

k-Nearest Neighbors (KNN) - Вычисление ближайших соседей

Вычисление KNN находит k наиболее похожих полных образцов (по расстоянию на наблюдаемых признаках) и средние (или принимает большинство голосов за) их значения. Он естественным образом захватывает нелинейные зависимости и хорошо работает со смешанными типами данных. Основными недостатками являются вычислительные затраты для больших наборов данных и чувствительность к выбору k и метрики расстояния. KNN предполагает, что механизм пропускания является MCAR или MAR и что метрика расстояния имеет значение для пространства признаков.

Многократная ампутация

Многократное вычисление (например, с использованием алгоритма MCMC или MICE) генерирует несколько полных наборов данных, вводя значения из статистической модели, которая включает в себя неопределенность. Аналитик затем вписывает дерево решений в каждый вмененный набор данных и объединяет результаты (например, путем усреднения прогнозируемых вероятностей или с использованием правил Рубина). Этот подход надлежащим образом отражает неопределенность вычисления и является надежным в соответствии с MAR. Хотя вычислительно более тяжелым, он является золотым стандартом для многих статистических приложений и поддерживается в Python через библиотеки, такие как или в scikit-learn.

Ограничения простой вычисления

Ни один метод вычисления не является панацеей. Простая вычисление может искажать совместное распределение признаков, затрудняя поиск деревьев решений чистых расколов. Более того, вычисление является этапом предварительной обработки, отдельным от индукции дерева; алгоритм дерева не «знает», что было вменено значение. Это может привести к чрезмерно оптимистичным оценкам производительности, если вычисление не подтверждено надлежащим образом в рамках цикла перекрестной валидации. Наконец, вычисление предполагает, что механизм пропущенности зажигаем — он не подходит для MNAR без дополнительного моделирования.

Суррогатное дерево делится на деревья решений

Вместо предварительной обработки данных некоторые алгоритмы дерева решений, в первую очередь оригинальные CART (классификационные и регрессионные деревья) обрабатывают отсутствующие значения нативно, используя суррогатные расщепления . Этот метод элегантный, потому что он использует саму структуру дерева для устранения пробелов без изменения исходных данных.

Как работают суррогатные сплиты

При построении дерева алгоритм выбирает наилучший раскол на узле на основе всех не упущенных значений первичного признака (например, «доход > 50 000 долларов США»). Затем он ищет одну или несколько суррогатных признаков, которые лучше всего имитируют этот раскол. Суррогатный раскол определяется другим признаком (например, «уровень образования = выпускник колледжа»), который при использовании на подмножестве данных, где наблюдается доход, производит раздел, максимально похожий на первичный раскол. Во время прогнозирования, если первичный признак отсутствует для образца, алгоритм возвращается к суррогатному расколу; если он также отсутствует, он использует следующий суррогат и так далее. Если суррогат не доступен, образец отправляется по ветви большинства или заранее определенному пути.

Преимущества и недостатки

Суррогатные расщепления имеют главное преимущество: они не требуют никаких вычислений - дерево учится на всех доступных данных без фабрикации значений. Они также сохраняют условные отношения, изученные во время строительства дерева. Однако техника требует, чтобы некоторые коррелированные функции существовали в качестве суррогатных; если недостающая функция не имеет сильных коррелятов, суррогатные расщепления становятся слабыми, и дерево все еще может потерять точность для недостающих записей. Кроме того, многие современные реализации (например, сурмативный расщепление FLT: 0) не поддерживают суррогатные расщепления из коробки - они в основном присутствуют в пакете R [FLT: 3] и в некоторых коммерческих программах. Для пользователей Python, которым нужны суррогатные расщепления, пакет R [FLT: 4] или библиотека [FLT: 5], доступная через [FLT: 6]] может быть вариантом, но это добавляет сложность. Чаще всего, практикующие обращаются к библиотекам деревьев с градиентным повышением, которые включают продвинутую обработку недостающих значений.

Моделирование и современные алгоритмы

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

XGBoost

XGBoost (Extreme Gradient Boosting) учится обрабатывать недостающие значения во время обучения, рассматривая недостающие как редкий сигнал. При каждом расщеплении алгоритм оценивает как направление по умолчанию для недостающих данных (левый или правый ребенок), так и оптимальное значение разбиения на наблюдаемые записи. Направление по умолчанию выбрано для минимизации функции потери, эффективного изучения того, имеют ли недостающие образцы тенденцию идти влево или вправо. Этот подход не требует вычисления и является высокоэффективным, поскольку недостающие значения представлены как разреженные матрицы, сохраняющие память. Обработка XGBoost хорошо работает в MAR и даже некоторых сценариях MNAR, потому что модель адаптируется на основе корреляции между недостающими и целью.

Световой GBM

LightGBM идёт другим путём: он рассматривает ноль и недостающие значения как единую группу (по умолчанию) и оптимизирует направление разбиения для этой группы. Во время обучения он узнает, принадлежат ли недостающие образцы левому или правому ребенку разбиения. Как и XGBoost, он не требует вычисления и эффективно обрабатывает разреженные данные. Рост листового дерева LightGBM также часто приводит к более быстрому обучению и лучшей точности, хотя уход необходим, чтобы избежать переобучения.

CatBoost

CatBoost (Категорическое повышение) использует несколько иной механизм: он рассматривает недостающие значения как отдельную категорию и позволяет дереву решать, когда разделиться на эту категорию. Для числовых функций недостающие значения первоначально назначаются заполнителем (например, −1), и дерево находит оптимальное разделение на основе этой обработки. CatBoost особенно силен для наборов данных с категориальными особенностями и может обрабатывать MNAR-подобные шаблоны, создавая отдельную логику листового пути для недостающего. Все три библиотеки готовы к производству, поддерживают интерфейсы Python/R/CLI и предлагают встроенную перекрестную валидацию.

Реализация практики обработки недостающих данных

Выбор стратегии зависит от инструментария, размера данных и схемы пропуска. Ниже приведен структурированный рабочий процесс, который объединяет обсуждаемые методы.

  1. Оценка недостающих — вычислить процент недостающих значений на одну особенность и на образец. Если какая-либо особенность имеет >90% недостающих, рассмотрите возможность ее отбрасывания, если знание домена не является сильным. Визуализируйте корреляции между показателями недостающих и наблюдаемыми особенностями с помощью тепловой карты или теста χ2.
  2. Определить механизм — применить тест MCAR Литтла, если образец достаточно большой. Если MCAR правдоподобен, удаление по списку может быть приемлемым для малой недостающей (<5%). Для MAR или MCAR с умеренной недостающей способностью, вычисление или обработка на основе модели безопаснее. Для MNAR рассмотреть возможность сбора дополнительных данных или использования моделей с смешанными шаблонами.
  3. Выберите метод, основанный на вашей структуре :
    • Если вы используете деревья решений ссклейнера (без встроенной отсутствующей поддержки), используйте имитатор (например, или ) внутри и настройте стратегию вычисления с помощью перекрестной проверки.
    • Если использовать XGBoost/LightGBM/CatBoost, то никаких вычислений не требуется – достаточно просто передать данные со значениями ; фреймворки будут их обрабатывать.
    • Если используется R, то параметр позволяет активировать суррогатные расщепления.
  4. Сверхпараметры туннеля, влияющие на недостающее обращение — для XGBoost и могут влиять на выбор ветвей недостающего значения. Для CatBoost контролирует, как рассматриваются недостающие числовые значения (как класс или вмененный). Проверяйте различные конфигурации.
  5. Правильно проверить — всегда включать недостающие данные обработки внутри кросс-валидационной петли (например, вычисление перед поездом / тестом разделить, чтобы избежать утечки данных).

Лучшие практики и общие подводные камни

  • Не приписывайте переменную цели — вменение цели в контролируемый контекст искажает обучающий сигнал. Вместо этого исключите или отнеситесь к недостаче цели как к отдельной проблеме моделирования (например, относитесь к дополнительному классу).
  • Использовать знание домена — во многих областях само отсутствие имеет смысл. Например, пропущенный лабораторный тест может указывать на то, что врач не подозревал состояние, предоставляя полезную информацию. Некоторые реализации деревьев позволяют создать функцию отсутствующего индикатора явно, чтобы дерево раскололось на пропажу как двоичную переменную.
  • Остерегайтесь разреженных данных в больших размерах — если большинство функций имеют частые недостающие записи, вычисление может стать крайне неопределенным.В таких случаях используйте древовидные методы со встроенной обработкой (XGBoost или LightGBM), которые рассматривают недостающие как отдельное направление.
  • Ансамбль моделей вычислений — для критических приложений рассмотрите возможность использования нескольких вычисления и усреднения деревьев решений в вмененных наборах данных (т.е. множественных вычисления + ансамбль).
  • Монитор развертывания производительности — шаблон недостающего может меняться с течением времени (понятие дрейфа).Непрерывно отслеживать функцию недостающих ставок и переобучить модели с обновленными стратегиями обработки.

Заключение

Missing data is an inevitable reality in machine learning, and decision tree algorithms are no exception. The appropriate handling strategy depends on the missingness mechanism, the chosen tooling, and the performance requirements. Basic imputation (mean, median, KNN, MICE) remains widely applicable but must be integrated carefully into the modeling pipeline to avoid leakage. Surrogate splits offer a principled, model‑based alternative, though their availability is limited to certainСовременные фреймворки, повышающие градиенты - XGBoost, LightGBM и CatBoost - установили новый стандарт, изучая оптимальные направления отсутствующей ценности сквозной, часто обеспечивая превосходную прогностическую точность без какой-либо предварительной обработки. В конечном счете, лучшая практика - систематически оценивать несколько методов на наборе проверки, используя знания домена для уточнения выбора. Рассматривая недостающие данные как источник ценной информации, а не неприятности, практикующие могут строить модели дерева решений, которые являются точными и надежными.

Дальнейшее чтение: Пропущенные данные — Википедия охватывает статистическую теорию; документация по вычислениям с использованием скикитов-учеников предоставляет детали реализации; и Урок по недостающим значениям XGBoost предлагает кодовый пример нативной обработки.