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

Давайте начнем,

Что такое недостающие данные?

Отсутствующие данные означают отсутствие наблюдений в столбцах. Он появляется в таких значениях, как «0», «NA», «NaN», «NULL», «Неприменимо», «Нет».

Почему в наборе данных отсутствуют значения?

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

Зачем обрабатывать пропущенные значения?

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

Как проверить отсутствующие данные?

Первый шаг в обработке отсутствующих значений — внимательно просмотреть данные и найти все отсутствующие значения. Чтобы проверить отсутствующие значения в кадре данных Python Pandas, мы используем такие функции, как isnull() и notnull(), которые помогают проверить, является ли значение «NaN» (True) или нет, и возвращают логические значения.

Кроме того, изучение отсутствующих данных с помощью визуализации позволяет быстро получить визуальное представление о полноте набора данных. «Missingno» — это библиотека Python, которая помогает визуализировать отсутствующие значения. Для визуализации отсутствующих значений «missingno» предоставляет гистограмму, матричный график, тепловую карту.

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

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

ТРИ СПОСОБА обработки отсутствующих значений в наборе данных:

Удаление пропущенных значений

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

  1. удаление строк (удаление по списку)
  2. удаление столбцов
  3. попарное удаление

Вменение пропущенных значений

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

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

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

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

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

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

СРЕДНЕЕ И МЕДИАННОЕ

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

MODE(Частое вменение категорий)

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

В некоторых случаях более уместно вменение значений с «предыдущим значением» (ffill), «одиночным значением» или «следующим значением» (bfill) вместо среднего, режима или медианы. Может использоваться со строками или числовыми данными. Для этого вы можете использовать функцию fillna библиотеки Python.

Другие методы вменения:

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

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

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

Вменение произвольных значений — важный метод, используемый в вменении, поскольку он может работать как с числовыми, так и с категориальными переменными. Это следует использовать, когда данные не отсутствуют случайным образом или для алгоритмов на основе дерева, но не для линейной регрессии или логистической регрессии. Этот метод гласит, что мы группируем отсутствующие значения в столбце и присваиваем им новое значение, например 999 или -999, или «Отсутствует», или «Не определено». Его легко использовать, но он может создавать выбросы.

Модель прогнозирования

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

Заключение

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

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

Модель машинного обучения для Прогнозирования цен на автомобили

Модель машинного обучения для прогнозирования цен на акции

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