Методы обработки отсутствующих данных в машинном обучении: пошаговое руководство на Python

Почему важна обработка недостающих данных?

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

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

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

Отсутствующие механизмы данных

  • Отсутствуют полностью случайно (MCAR). Значения отсутствуют полностью случайно (MCAR), если отсутствующие данные полностью не связаны как с наблюдаемыми, так и с отсутствующими экземплярами.
  • Случайное отсутствие (MAR): Случайное отсутствие данных (MAR) - это когда отсутствующие данные связаны с наблюдаемыми данными, но не с отсутствующими данными.
  • Отсутствуют не случайно (MNAR): Отсутствуют не случайно (MNAR) - это данные, которые не относятся ни к MAR, ни к MCAR. Это означает, что недостающие данные относятся как к наблюдаемым, так и к отсутствующим экземплярам.

Обработка отсутствующих данных

  1. Удаление переменных
  2. Частичное удаление
  3. Вменение данных

1. Удаление переменных

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

2. Частичное удаление

2.1 Удаление по списку

Удаление по списку - это метод, при котором удаляются строки, содержащие пропущенные значения.

Недостатки: удаление по списку снижает интенсивность выполняемых статистических тестов. Больше выборок данных - ключевой фактор в анализе. Поскольку при удалении по списку данные с пропущенными значениями удаляются, размер данных уменьшается. Списочное удаление может вызвать искажение данных.

3. Вменение данных

3.1 Единичное вменение

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

3.1.1 Единичное вменение для числовых столбцов

3.1.1.1 Среднее значение

3.1.1.2 Вменение регрессии

3.1.2 Единичное вменение для категориальных столбцов

3.1.2.1 Вменение режима

3.1.1 Единичное вменение для числовых столбцов

3.1.1.1 Среднее значение

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

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

3.1.1.2 Вменение регрессии

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

3.1.2 Единичное вменение для категориальных столбцов

3.1.2.1 Включение режима

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

Недостаток: более вероятно, что модель будет искажена.

3.2 Множественное вменение

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

3.2.1 MICE (множественное исчисление цепным уравнением)

Алгоритм MICE:

  • Шаг 1. Первоначально набору данных вменяется среднее значение, которое действует как «заполнители».
  • Шаг 2: отсутствующая переменная выбирается случайным образом и называется целевой, а другие функции, за исключением тех, которые будут действовать как функции. Регрессионная модель обучается этим функциям и цели.
  • Шаг 3: пропущенные значения целевого значения затем заменяются прогнозами (вменениями) из регрессионной модели.
  • Шаг 4: затем шаги 2–3 повторяются для каждой функции, для которой есть ненаблюдаемые данные. В конце одного цикла все пропущенные значения были бы вменены прогнозам.
  • Шаг 5. Шаги 2–4 повторяются в течение определенного количества циклов.

Алгоритм MICE для категориальных данных:

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

  • Шаг 1. Порядковое кодирование ненулевых значений
  • Шаг 2. Используйте вменение MICE с классификатором повышения градиента для вменения данных в порядковой кодировке.
  • Шаг 3. Преобразуйте обратно порядковые значения в категориальные.
  • Шаг 4. Выполните шаги с 1 по 5 алгоритма MICE. Вместо использования среднего вменения для начальной стратегии используйте режим вменения.

Найдите это сообщение в моем блокноте Kaggle: https://www.kaggle.com/srivignesh/techniques-for-handling-the-missing-data

Ссылки:

[1] Хен Кан , Предотвращение и обработка недостающих данных (2013 г.), Национальный центр биотехнологической информации.

[2] Мелисса Дж. Азур, Элизабет А. Стюарт, Константин Франгакис и Филип Дж. Лиф, Множественное вменение посредством связанных уравнений: что это такое и как это работает? (2011), Национальный центр биотехнологической информации.

Свяжитесь со мной в LinkedIn, Twitter!

Удачного машинного обучения!

Спасибо!