Когда мы начинаем наше путешествие по науке о данных, это выглядит как небольшая сделка. Важность Feature Engineering будет осознана только тогда, когда мы начнем выполнять проекты.
Хотя у всех проектов есть свои требования к Feature Engineering, существует общий контрольный список, на который мы можем ссылаться.
Примечание. Рекомендуемые встроенные функции/пакеты взяты из python.
Обработка необработанных данных (EDA):
- Изучите числовые функции, используя встроенные функции и графики фреймов данных.
- Исследуйте категориальные признаки, используя такие графики, как корреляция, гистограмма и ящичковые диаграммы.
- Найдите и исследуйте отсутствующие значения, используя такие функции, как DataFrame.info или DataFrame.describe().
- Узнайте, есть ли в наборе данных какие-либо выбросы, используя ящичные диаграммы или графики распределения.
- Очистите набор данных, удалив объекты, которые не подходят для проекта. Например: обычно идентификаторы не так важны как независимые функции. Другими словами, не будет корреляции между зависимой переменной и этим признаком.
Обработка выбросов:
- Используйте ящичные диаграммы, чтобы понять распределение вашего набора данных.
- Выбросы влияют на несколько алгоритмов и проверок гипотез, поэтому рекомендуется их удалить.
- Вы можете использовать метод IQR или Z-оценки для выявления и удаления выбросов из набора данных.
Обработка пропущенных значений:
- В наборе данных может быть несколько отсутствующих значений. Если количество строк с отсутствующими значениями намного меньше, чем количество строк с полными значениями, мы можем удалить строки со значениями Null.
- Если нет, заполните нулевые значения, используя методы вменения со средним значением, модой или медианой, соответствующие вашему проекту.
- Вы можете использовать встроенные пакеты, такие как SimpleImputer, для импутации.
Обработка несбалансированных данных:
- Несбалансированный набор данных может привести к переоснащению, что приведет к низкой точности предсказания тестового набора.
- Они заставляют модель машинного обучения быть более смещенной в сторону доминирующего класса.
Стандартизация/масштабирование данных:
- Если разница между точками данных всех функций или разница в распределении функций достаточно велика, неопределенность модели машинного обучения будет увеличена.
- Модель будет назначать веса для каждого значения в наборе данных во время обучения. Это приведет к тому, что модель будет присваивать большие веса большим значениям, что сделает модель очень нестабильной.
- Масштабирование данных с использованием процесса нормализации, алгоритма градиентного спуска или алгоритма на основе расстояния решит эту проблему. Масштабирование приблизит значения данных друг к другу, и, следовательно, модель сможет быстрее обучаться и давать результаты более эффективно.
Кодировка:
- Большинство моделей могут понимать только числовые признаки, поэтому необходимо присваивать числовые значения категориальным значениям в наборе данных.
- Для этой цели мы можем использовать кодировку One-Hot или Integer.
- Для этой цели можно использовать встроенные пакеты, такие как LabelEncoder и OneHotEncoder.
Весь этот процесс может варьироваться от проекта к проекту, и это зависит исключительно от набора данных. Но обеспечение того, чтобы элементы этого обобщенного контрольного списка выполнялись в окончательном наборе данных, приведет к чистому набору данных. Это поможет модели машинного обучения или проверке гипотез давать эффективные результаты.