KNNImputer: надежный метод вменения отсутствующих значений

машинное обучение

Автор|КАУШИК Компилировать|ВКонтакте Источник | Аналитика Видья

Обзор

  • Научитесь использовать KNNImputer для заполнения пропущенных значений в ваших данных.

  • Понимание пропущенных значений и их типов

вводить

KNNImputer от scikit Learn — это широко используемый метод вменения отсутствующих значений. Он широко рассматривается как альтернатива традиционным методам вменения.

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

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

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

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

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

содержание

  • проблема степеней свободы

  • Образец отсутствующего значения

  • Суть алгоритма kNN

  • Расчет расстояния при отсутствии значений

  • Метод интерполяции KNNImputer

проблема степеней свободы

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

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

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

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

Образец отсутствующего значения

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

  • Ошибка в машине/оборудовании

  • ошибка исследователя

  • Респонденты, с которыми не удалось связаться

  • случайно удалил

  • Некоторые респонденты забывчивы

  • бухгалтерские ошибки и т.д.

Типы пропущенных значений в целом можно разделить на:

Отсутствует совершенно случайно (MCAR)

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

Отсутствует случайным образом (MAR)

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

Пропавшие без вести не случайно (MNAR)

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

Суть алгоритма kNN

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

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

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

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

Аналогичным методом вменения, который работает с данными, является k-ближайший сосед (kNN), который использует меру расстояния для определения соседних точек и может использовать полное значение соседних наблюдений для оценки пропущенных значений.

пример

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

Вот пример вменения из 3-NN.

И наоборот, если вы определите 3 соседей, которые просят вас о помощи, и решите объединить элементы, предоставленные 3 ближайшими к вам соседями, это пример вменения 3-NN.

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

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

Идея метода kNN состоит в том, чтобы идентифицировать k выборок, пространственно схожих или близких друг к другу в наборе данных. Затем мы используем эти «k» выборок для оценки значения отсутствующих точек данных. Пропущенные значения для каждой выборки вменяются с использованием среднего значения «k» окрестностей, найденных в наборе данных.

Расчет расстояния при отсутствии значений

Давайте посмотрим на пример, чтобы понять это. Рассмотрим пару наблюдений в двумерном пространстве (2,0), (2,2), (3,3). Графическое представление этих точек выглядит следующим образом:

Точки с кратчайшим расстоянием, основанным на евклидовом расстоянии, считаются ближайшими соседями. Например, 1-ближайший сосед точки A — это точка B. Для точки B 1-ближайшим соседом является точка C.

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

в

Например, евклидово расстояние между двумя точками (3, NA, 5) и (1, 0, 0):

Теперь используем модуль парной метрики в пакете sklearnnan_euclidean_distancesфункция для вычисления расстояния между двумя точками с пропущенными значениями.

несмотря на то чтоnan_euclidean_distancesРаботает с двумя одномерными массивами, предоставленными параметрами X и Y, но также может работать с одним массивом с несколькими измерениями.

Таким образом, матрица расстояний представляет собой матрицу 2x2, которая представляет собой евклидово расстояние между парами наблюдений. Кроме того, диагональный элемент составной матрицы равен 0, поскольку он представляет собой расстояние между одним наблюдением и самим собой.

Метод интерполяции KNNImputer

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

В этом случае приведенный выше код показывает, что наблюдение 1 (3, NA, 5) и наблюдение 3 (3, 3, 3) являются ближайшими по расстоянию (~ 2,45).

Следовательно, приписывание отсутствующих значений в наблюдении 1 (3, NA, 5) с 1-ближайшим соседом дает оценку 3, которая совпадает со вторым измерением наблюдения 3 (3, 3, 3). Оценки равны то же.

Кроме того, оценка пропущенных значений в наблюдении 1 (3, NA, 5) с 2-ближайшим соседом даст оценку 1,5, которая совпадает со средним значением второго измерения наблюдений 2 и 3, т. е. (1 , 0, 0) и (3, 3, 3).

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

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

конец

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

Кроме того, исследования показали, что необходимо использовать перекрестную проверку для проверки модели после вменения с разными значениями k. Хотя вменение пропущенных значений — растущая область исследований, kNN — простая и эффективная стратегия.

Оригинальная ссылка:Woohoo.Со слов аналитиков vi.com/blog/2020/0…

Добро пожаловать на сайт блога Panchuang AI:panchuang.net/

sklearn машинное обучение китайские официальные документы:sklearn123.com/

Добро пожаловать на станцию ​​сводки ресурсов блога Panchuang:docs.panchuang.net/