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

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

Как определить недостающие значения?

Мы можем проверить нулевые значения в наборе данных, используя функцию pandas как:

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

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

При тщательном анализе функций следующие столбцы имеют недопустимое нулевое минимальное значение:

1: Концентрация глюкозы в плазме

2: Диастолическое артериальное давление

3: Толщина кожной складки трицепса

4: 2-часовой сывороточный инсулин

5: Индекс массы тела

При проверке количества нулей в этих столбцах становится ясно, что столбцы 1,2 и 5 имеют мало нулевых значений, тогда как столбцы 3 и 4 имеют намного больше.

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

Быстрая классификация отсутствующих данных

Есть три типа недостающих данных:

MCAR: отсутствует случайно. Это высший уровень случайности. Это означает, что отсутствующие значения в каких-либо объектах не зависят от значений других объектов. Это желательный сценарий в случае отсутствия данных.

MAR: отсутствует случайно. Это означает, что недостающие значения в любой функции зависят от значений других функций.

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

Что делать с отсутствующими значениями?

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

Игнорируйте отсутствующие значения

  • Отсутствующие данные ниже 10% для отдельного случая или наблюдения, как правило, можно игнорировать, за исключением случаев, когда отсутствующие данные представляют собой MAR или MNAR.
  • Количество полных случаев, т.е. наблюдение без пропущенных данных, должно быть достаточным для выбранного метода анализа, если неполные случаи не рассматриваются.

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

Удаление переменной

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

Удаление регистра

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

Вменение

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

Расчет по среднему / режиму / медиане

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

Методы регрессии

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

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

Расчет ближайшего соседа по методу K (KNN)

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

Чтобы найти наилучшее совпадение, нужно попробовать разные значения k с разными метриками расстояния. Метрика расстояния может быть выбрана на основе свойств данных. Например, евклидово расстояние является хорошей мерой расстояния, если входные переменные похожи по типу (например, все измеренные значения ширины и высоты). Манхэттенское расстояние - хороший способ измерения, если входные переменные не похожи по типу (например, возраст, пол, рост и т. Д.).

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

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

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

MI включает следующие три основных шага:

  1. Вменение: недостающие данные заполняются оценочными значениями, и создается полный набор данных. Этот процесс вменения повторяется m раз, и создается m наборов данных.
  2. Анализ. Затем каждый из m полных наборов данных анализируется с использованием интересующего статистического метода (например, линейной регрессии).
  3. Объединение: оценки параметров (например, коэффициенты и стандартные ошибки), полученные из каждого проанализированного набора данных, затем усредняются для получения одноточечной оценки.

Scikit-learn Python имеет методы - impute.SimpleImputer для одномерного (с одной переменной) вменения и impute.IterativeImputer для многомерного вменения.

Пакет MICE в R поддерживает функцию множественного вменения. Python не поддерживает напрямую несколько вменений, но IterativeImputer можно использовать для нескольких вменений, многократно применяя его к одному и тому же набору данных с разными случайными начальными числами, когда sample_posterior = True.

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

  1. Оценка без предвзятости. Любой метод обработки недостающих данных не должен влиять на распределение данных.
  2. Связь между атрибутами должна быть сохранена.

Надеюсь, вам понравилось читать блог !!

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

Использованная литература:

Https://machinelearningmaster.com/handle-missing-data-python/ https://en.wikipedia.org/wiki/Imputation_(statistics) https://stats.idre.ucla.edu/stata / семинары / mi_in_stata_pt1_new /

Https://pdfs.semanticscholar.org/e4f8/1aa5b67132ccf875cfb61946892024996413.pdf

Первоначально опубликовано на https://www.edvancer.in 2 июля 2019 г.