Когда мы начинаем наше путешествие по науке о данных, это выглядит как небольшая сделка. Важность Feature Engineering будет осознана только тогда, когда мы начнем выполнять проекты.

Хотя у всех проектов есть свои требования к Feature Engineering, существует общий контрольный список, на который мы можем ссылаться.

Примечание. Рекомендуемые встроенные функции/пакеты взяты из python.

Обработка необработанных данных (EDA):

  1. Изучите числовые функции, используя встроенные функции и графики фреймов данных.
  2. Исследуйте категориальные признаки, используя такие графики, как корреляция, гистограмма и ящичковые диаграммы.
  3. Найдите и исследуйте отсутствующие значения, используя такие функции, как DataFrame.info или DataFrame.describe().
  4. Узнайте, есть ли в наборе данных какие-либо выбросы, используя ящичные диаграммы или графики распределения.
  5. Очистите набор данных, удалив объекты, которые не подходят для проекта. Например: обычно идентификаторы не так важны как независимые функции. Другими словами, не будет корреляции между зависимой переменной и этим признаком.

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

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

Обработка пропущенных значений:

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

Обработка несбалансированных данных:

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

Стандартизация/масштабирование данных:

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

Кодировка:

  1. Большинство моделей могут понимать только числовые признаки, поэтому необходимо присваивать числовые значения категориальным значениям в наборе данных.
  2. Для этой цели мы можем использовать кодировку One-Hot или Integer.
  3. Для этой цели можно использовать встроенные пакеты, такие как LabelEncoder и OneHotEncoder.

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