4 основных этапа предварительной обработки данных

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

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

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

  1. Определение функций (и столбцов)
    - а также описание числовых переменных и понимание категориальных переменных
  2. Обработка отсутствующих значений
  3. Выявление недействительных записей и управление ими
  4. Проверка нулевых и пустых значений и замена / добавление необходимых изменений.

Для этого нам понадобится помощь статистики, а также некоторые знания предметной области - если вы не ценитель вина, как вы узнаете, что нет категорий для хорошего или плохого вина? Без знания предметной области все зависит от личного выбора, не так ли!

Допустим, мы импортировали наши данные в Jupyter Notebook!

import pandas as pd
df = pd.read_csv('data.csv')

Определение функций / столбцов

Следующие команды (наиболее распространенные) могут использоваться для понимания состава данных:

df.info()
df.describe()
df.columns
df.dtypes
len(df)
  • df.info() - выводит информацию о фрейме данных, такую ​​как диапазоны индексов, имена столбцов и dtype каждого столбца. Он также показывает, сколько присутствует ненулевых значений. Это очень удобно, когда вы хотите проверить, не поврежден ли индекс, нулевые значения и тип данных столбцов.
  • df.describe() - Суммирует оценки местоположения, дисперсию и форму распределения. Он показывает среднее значение, стандартное отклонение, различные процентили, минимальное и максимальное значения числовых столбцов. Он также описывает категориальные / объектные данные со значениями счетчика, уникальности и режима. Это может дать вам представление о частоте и разбросе данных.
  • df.columns - отображает все столбцы, доступные в наборе данных.
  • df.dtypes - перечисляет тип данных каждой функции / столбца.
  • len(df) - печатает общее количество строк во фрейме данных

Теперь у нас есть общее представление о столбцах и строках, типах данных каждого столбца и количестве пропущенных значений (NULLS). Можно переходить к очистке данных.

Обработка отсутствующих значений

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

df.isnull().sum()

Это даст быстрый список количества NULL в каждом столбце. С ними можно справиться по-разному. Самые распространенные способы:

  • Внести с соответствующими значениями в наборе данных
  • Удалите строки / функции, если вменение не добавит ценности данным.

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

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

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

Удаление строк / столбцов

Важно знать, когда следует отбрасывать столбцы и строки.

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

Имейте в виду, это общее практическое правило. Фактические параметры для отбрасывания данных зависят от предмета знаний и важности функции.

Поиск недействительных записей

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

  • Проверьте правильность диапазона числовых столбцов - отсутствующие значения обычно заполняются записями, выходящими за пределы допустимого диапазона. Например, система продаж вводит «-1» в качестве количества всякий раз, когда транзакция отклоняется. Данные могут содержать много значений -1. Если это не обнаружено, уровень запасов будет недооценен из-за количества отклоненных услуг.
  • Ноль может быть заменой NULLS - во многих сценариях 0 может использоваться для ввода неизвестных данных. Это можно понять, посмотрев на статистику и знания предметной области.

Обработка выбросов

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

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

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

Спасибо, что прочитали эту статью! Д не забывай хлопать! Если у вас есть какие-либо вопросы, вы можете написать их в разделе комментариев 💬 ниже, и я постараюсь ответить на них. Свяжитесь со мной в LinkedIn, чтобы узнать больше.

Серия семинаров по статистике

Присоединяйтесь к нам на нашу самую большую серию вебинаров! У нас есть серия из 7 частей, в которой рассматриваются все этапы статистики, связанные с наукой о данных, от основ до расширенной статистики в алгоритмах машинного обучения.

📅 Каждую субботу в 12:00. EST (до 27 марта)
Зарегистрируйтесь здесь: Зарегистрируйтесь!

Пропустили предыдущие семинары? Не беспокоиться! Все предыдущие мастер-классы записаны и будут опубликованы на YouTube!

Предстоящий вебинар

В настоящее время мы проводим серию БЕСПЛАТНЫХ веб-семинаров на тему СТАТИСТИКА В НАУКЕ ДАННЫХ. Чтобы узнать больше и зарегистрироваться, НАЖМИТЕ ЗДЕСЬ

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