Машинное обучение с преднамеренными пропусками данных

Вопрос или проблема

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

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

Возможно, я мог бы преобразовать показатель в категориальную переменную {низкий, средний, высокий, недоступен} – будет ли это обычной практикой? Я открыт для предложений и хотел бы услышать, что обычно делают в таких сценариях.

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

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

Для помощи в поиске других ресурсов, это обычно называют “отсутствие не случайно”.

Некоторые модели, такие как xgboost, обрабатывают пропущенные значения по своей сути, делая разбиения дерева на реальное значение, но затем выбирая, в какую ветвь отправить пропущенные значения. (Другие реализации CART этого не делают, а семейство деревьев Куинлана действует совсем по-другому.)

Для других моделей я бы рекомендовал добавить функцию “индикатор отсутствия” и затем выполнить иммитацию. Особенно для линейных моделей, коэффициент по исходной функции может соответствовать “реальному” уклону, в то время как коэффициент по индикатору “исправляет” пропущенные значения (и любую используемую вами иммитацию). См., например, этот ответ на stats.SE.

Если ваше исследование показало, что вам либо придется удалять наблюдения и проводить анализ с полными случаями, что приведет к потере данных и, следовательно, прогностической силы, либо соответствующим образом заполнить набор данных и также ввести меру для учета изменчивости, вы можете просто ввести Множественную Иммутацию (МИ) в ваш набор данных. Заполняя m наборов данных и объединяя их с использованием правил Рубина, вы сможете использовать свой алгоритм машинного обучения по мере необходимости.
Вот статья о MICE и дополнительная информация о применении в R. Вы найдете полезную литературу для углубления в тему в библиографии.
https://stefvanbuuren.name/publications/2011%20MICE%20-%20JSS.pdf
https://cran.r-project.org/web/packages/mice/mice.pdf

.

Ответ или решение

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

Теория

Во многих задачах машинного обучения отсутствующие значения в данных обычно рассматриваются как случайные и игнорируемые путем удаления или иммутации. Однако, если отсутствие значения связано с какой-то важной характеристикой данных, то имеет смысл учитывать данный сигнал в процессе моделирования. Подобные случаи называются "пропуски не случайны" (Missing Not At Random, MNAR).

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

Пример

Рассмотрим ваш случай с данными о точности отзывов. Если предположить, что точность (accuracy score) не всегда доступна, и ее отсутствие может означать неспособность рецензента завершить проверку или другие системные факторы, то это своеобразный индикатор поведения. Стандартизированные подходы, такие как метод xgboost, уже имеют встроенные механизмы для обработки отсутствующих значений, включая принятие решений о том, каким путем пропущенное значение должно быть обработано при разветвлении дерева.

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

Применение

Для внедрения данных идей в практику, имеется несколько возможных подходов:

  1. Использование категориальных переменных: Преобразуйте точность в категориальную переменную {низкая, средняя, высокая, не доступна}. Это позволит явно фиксировать отсутствие информации и изучать его влияние как части предсказательной модели.

  2. Индикатор отсутствия: Добавьте бинарную переменную, указывающую на то, какого рода данные отсутствуют. Это особенно полезно для более простых моделей, таких как линейные.

  3. Множественная иммутация (Multiple Imputation): Этот метод заключается в создании нескольких иммутаций набора данных и их объединении с использованием методов типа Rubin’s Rules. Это может обеспечить более надежные предиктивные модели за счет уменьшения biais, связанного с заменой данных.

  4. Использование моделей, учитывающих пропуски: Если используется модель, такая как xgboost, которая умеет обрабатывать пропуски, имеет смысл опираться на её внутренние механизмы обработки.

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

Оцените материал
Добавить комментарий

Капча загружается...