Инжиниринг признаков (Feature Engineering) - Лена Капаца
Инжиниринг признаков (Feature Engineering) by Лена Капаца Jan. 26, 2025 Основы

Feature Engineering (инжиниринг признаков) — это процесс преобразования сырых данных, чтобы те лучше подходили для моделирования. Он включает в себя выбор, создание и преобразование признаков.

Зачем Нужна Инженерия Признаков?

  1. Улучшение производительности: Правильные признаки могут значительно повысить точность модели.
  2. Снижение переобучения: Уменьшение избыточности в данных помогает избежать переобучения модели.
  3. Упрощение модели: Сокращение числа признаков может привести к более простой и интерпретируемой модели.

 

Основные Этапы Инженерии Признаков

1. Анализ данных: Понимание структуры и содержания данных.

2. Обработка пропусков: Заполнение или удаление пропущенных значений.

3. Кодирование категориальных признаков: Преобразование категориальных данных в числовые.

4. Создание новых признаков: Извлечение новых признаков из существующих.

5. Масштабирование признаков: Приведение признаков к одному масштабу.

6. Выбор признаков: Определение значимости признаков и удаление несущественных.

 

Инжиниринг признаков на Python

Мы создадим простую модель линейной регрессии на основе набора данных о жилье (с использованием библиотеки pandas и scikit-learn).

 

import pandas as pd

import numpy as np

from sklearn.model_selection import train_test_split

from sklearn.linear_model import LinearRegression

from sklearn.preprocessing import OneHotEncoder, StandardScaler

from sklearn.compose import ColumnTransformer

from sklearn.pipeline import Pipeline


# Чтение данных о жилье

data = pd.read_csv('housing_data.csv')

print(data.head())

Предположим, что данные содержат следующие колонки: size, bedrooms, location, price.

 

# Кодируем категориальные признаки

# Использование OneHotEncoder для категориального признака 'location'

categorical_features = ['location']

numerical_features = ['size', 'bedrooms']




# Создание трансформера столбцов

preprocessor = ColumnTransformer(

    transformers=[

        ('num', StandardScaler(), numerical_features), # Приведет столбцы к числовому типу

        ('cat', OneHotEncoder(), categorical_features)]) # Приведет столбцы к категориальному типу

 

В дальнейшем модель обучается. 

 

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

© Лена Капаца. Все права защищены.