Предварительная обработка данных: изучение ключей к подготовке данных — SitePoint
В этой статье мы рассмотрим, что такое предварительная обработка данных, почему она важна и как очищать, преобразовывать, интегрировать и сокращать наши данные.
Предварительная обработка данных — это фундаментальный шаг в анализе данных и машинном обучении. Это сложный процесс, который закладывает основу для успеха любого проекта, основанного на данных.
По своей сути предварительная обработка данных включает в себя ряд методов преобразования необработанных, неочищенных данных в структурированный и последовательный формат, пригодный для глубокого анализа и моделирования.
Этот жизненно важный подготовительный этап является основой для извлечения ценных знаний и мудрости из данных, расширения возможностей принятия решений и прогнозного моделирования в различных областях.
Необходимость предварительной обработки данных возникает из-за несовершенства и сложности реальных данных. Необработанные данные, которые часто получают из разных источников, обычно содержат пропущенные значения, выбросы, несоответствия и шум. Эти недостатки могут затруднить аналитический процесс, поставив под угрозу надежность и точность сделанных выводов. Более того, данные, собранные из разных каналов, могут различаться по масштабам, единицам измерения и форматам, что затрудняет прямое сравнение и потенциально может ввести в заблуждение.
Предварительная обработка данных обычно включает в себя несколько этапов, включая очистку данных, преобразование данных, интеграцию данных и сокращение данных. Мы рассмотрим каждый из них по очереди ниже.
Очистка данных включает в себя выявление и исправление ошибок, несоответствий и неточностей в данных. Некоторые стандартные методы, используемые при очистке данных, включают:
Давайте обсудим каждый из этих методов очистки данных по очереди.
Обработка пропущенных значений является важной частью предварительной обработки данных. В рамках этого метода рассматриваются наблюдения с отсутствующими данными. Мы обсудим три стандартных метода обработки пропущенных значений: удаление наблюдений (строк) с пропущенными значениями, вменение пропущенных значений с помощью статистических инструментов и вменение пропущенных значений с помощью алгоритмов машинного обучения.
Мы продемонстрируем каждый метод с помощью специального набора данных и объясним выходные данные каждого метода, обсуждая все эти методы обработки пропущенных значений индивидуально.
Самый простой способ справиться с отсутствующими значениями — удалить строки с отсутствующими значениями. Обычно этот метод не рекомендуется, так как он может повлиять на наш набор данных, удалив строки, содержащие важные данные.
Давайте разберем этот метод на примере. Мы создаем собственный набор данных с данными о возрасте, доходе и образовании. Мы вводим пропущенные значения, устанавливая для некоторых значений значение NaN (а не число). NaN — это специальное значение с плавающей запятой, которое указывает на недопустимый или неопределенный результат. Наблюдения с NaN будут удалены с помощью функции dropna() из библиотеки Pandas:
Вывод приведенного выше кода приведен ниже. Обратите внимание, что вывод не будет производиться в формате таблицы с границами. Мы предоставляем его в этом формате, чтобы сделать вывод более интерпретируемым, как показано ниже.
Исходный набор данных
Очищенный набор данных
Наблюдения с пропущенными значениями удаляются из очищенного набора данных, поэтому сохраняются только наблюдения без пропущенных значений. Вы обнаружите, что в очищенном наборе данных присутствуют только строки 0 и 4.
Удаление строк или столбцов с пропущенными значениями может значительно сократить количество наблюдений в нашем наборе данных. Это может повлиять на точность и обобщение нашей модели машинного обучения. Поэтому нам следует использовать этот подход осторожно и только тогда, когда у нас достаточно большой набор данных или когда недостающие значения не важны для анализа.
Это более сложный способ борьбы с недостающими данными по сравнению с предыдущим. Он заменяет отсутствующие значения некоторыми статистическими данными, такими как среднее значение, медиана, мода или постоянное значение.
На этот раз мы создаем пользовательский набор данных с данными о возрасте, доходе, поле и семейном положении с некоторыми отсутствующими значениями (NaN). Затем мы вменяем недостающие значения медиане, используя функцию fillna() из библиотеки Pandas: