Предварительная обработка, EDA и разработка функций

Вы не поверите, но эта часть покрывает около 60–70% всей работы по машинному обучению! Я не буду здесь говорить о кодах, потому что считаю, что если вы знаете логику, найти код не так уж сложно, только то, как добраться до него, будет варьироваться от человека к человеку. Некоторые места, где можно получить коды, - это StackOverflow, Kaggle, Github или что-нибудь в Google, что помогает заставить эту логику работать!

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

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

Уберите данные

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

Зачем нужно очищать данные? Давайте посмотрим на пример ниже:

В этом небольшом примере «грязных данных» есть ряд проблем.

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

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

Теперь вы знаете, что данные испорчены, так как же это исправить?

  1. В лучшем случае → Обратитесь к источнику, если он может помочь вам очистить данные.
  2. Если это невозможно, то вам придется сделать это самостоятельно. Различные типы ошибок в данных можно исправить разными способами в зависимости от варианта использования и типа набора данных.
  3. Повторяющиеся строки можно агрегировать на некоторых уровнях (например, на уровне ученика, города или учителя) для создания уникальных записей.
  4. Другой формат: даты, числа, доходы, баллы и т. д. должны быть приведены к одному и тому же формату, в зависимости от того, что применимо.
  5. Опечатки просто неизбежны, если люди заполняют форму, которая является источником данных. Но автоматизация системы для ввода таких данных может помочь в долгосрочной перспективе лучше собирать данные.
  6. Отсутствующие записи - есть несколько способов заполнить это на основе столбца, в котором отсутствуют значения и варианты использования проекта.

а. Вы можете заполнить, используя обычное значение (например, 0 или 9999 или «: ‹blanks›»),

б. с использованием среднего / медианного значения всего столбца

c. используя продвинутые методы, такие как KNN (k-ближайшие соседи) или,

d. просто оставьте все как есть, если это не имеет большого значения.

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

После того, как данные были очищены до степени, мы можем перейти к следующему шагу.

Поймите скрытые закономерности

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

  1. Сколько гамбургеров вы съели в этом году? Сколько из них вы съели с картошкой фри?
  2. Сколько раз вы обедали с другом?
  3. Сколько раз вы ели гамбургер, когда были с друзьями? И такие вещи.

Зачем нужен анализ? Это помогает нам понять «достаточно ли у нас образцов / функций для решения конечной проблемы»?

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

Функциональная инженерия

Характеристика == Атрибут == Столбец == Размер

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

Например, адрес содержит: 221b Baker Street, London. Мы можем распустить этот столбец, чтобы получить больше информации - Город, Улица, № кв. Аналогичным образом день рождения «21 января–1994» можно разделить на «Дата», «Месяц, Год, День года», «Неделя года» и т. Д. Эти новые столбцы имеют больше смысла, чем исходные функции.

Другой пример: если весь набор данных относится к Лондону, мы можем удалить только что созданный столбец City, потому что он не будет добавлять никаких дополнительных значений. Точно так же, если у нас есть столбец «Возраст», который добавляет то же значение, что и столбец «Дата рождения», мы можем удалить один из них.

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

Но есть кое-что, с чем я столкнулся во время моего Учителя - «проклятие размерности». Это означает, что иметь много измерений на самом деле нехорошо. Тогда что нам делать? Что ж, однажды сделать просто:
a. Столбцы, которые не добавляют никаких значений к данным, должны быть удалены.
b. Следует удалить более одного столбца, подразумевающего одну и ту же деталь.

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