Проектирование признаков

Разработка моделей машинного обучения для продакшена

Sinan Ozdemir

Data Scientist and Author

Введение в проектирование признаков

  • Преобразование обучающих данных для повышения производительности ML-конвейера
  • Снижение вычислительной сложности
  • Примеры
    • Агрегация данных из нескольких источников
    • Конструирование новых признаков
    • Применение преобразований признаков

конвейер проектирования признаков

1 https://www.manning.com/books/feature-engineering-bookcamp
Разработка моделей машинного обучения для продакшена

Агрегация данных из нескольких источников

  • Объединение данных из разных наборов
  • Использование данных разных типов (например, числовых и категориальных)

Это помогает:

  • Повысить точность моделей
  • Применять более сложные модели

графики на экране

Разработка моделей машинного обучения для продакшена

Пример агрегации данных

class DataAggregator:
    def __init__(self):
        pass

    def fit(self, X, y=None):
        return self  # nothing to fit

    def transform(self, X, y=None):
        # Load data from multiple sources
        data1 = pd.read_csv('data1.csv')
        data2 = pd.read_csv('data2.csv')
        data3 = pd.read_csv('data3.csv')

        # Combine data from all sources (including X) into a single data frame
        aggregated_data = pd.concat([X, data1, data2, data3], axis=0)

        return aggregated_data  # Return aggregated data
Разработка моделей машинного обучения для продакшена

Конструирование признаков

  • Создание новых признаков на основе существующих
  • Генерация признаков из имеющихся данных
  • Повышение производительности модели
  • Улучшение интерпретируемости модели
Разработка моделей машинного обучения для продакшена

Пример конструирования признаков

class FeatureConstructor:
    def __init__(self):
        pass

    def fit(self, X, y=None):
        return self

    def transform(self, X, y=None):
        # Calculate the mean of each column in the data
        mean_values = X.mean()

        # Create new features based on the mean values
        X['mean_col1'] = X['col1'] - mean_values['col1']
        X['mean_col2'] = X['col2'] - mean_values['col2']

        return X  # Return the augmented data set
Разработка моделей машинного обучения для продакшена

Преобразования признаков

Преобразование существующих признаков

  • Нормализация распределений данных
  • Удаление выбросов
  • Повышение точности и производительности модели
```py
```py

Разработка моделей машинного обучения для продакшена

Отбор признаков

Выбор подмножества признаков из общего набора путём удаления избыточных и нерелевантных

  • Снижает переобучение
  • Повышает точность и производительность модели
  • Улучшает интерпретируемость модели

отбор признаков

1 https://www.manning.com/books/feature-engineering-bookcamp
Разработка моделей машинного обучения для продакшена

Пример проектирования признаков (продолжение)

```py
import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.feature_selection import SelectKBest, chi2

from sklearn.pipeline import Pipeline

pipeline = Pipeline([  # Define feature engineering pipeline

    ('aggregate', DataAggregator()),  # Aggregate data from multiple sources
    ('construction', FeatureConstructor()),  # Feature Construction

    ('scaler', StandardScaler()),  # Feature Transformation

    ('select', SelectKBest(chi2, k=10)),  # Feature Selection
])
X_transformed = pipeline.fit_transform(X)  # Fit and transform data using pipeline
Разработка моделей машинного обучения для продакшена

Узнайте больше о проектировании признаков

книга по проектированию признаков

Разработка моделей машинного обучения для продакшена

Давайте потренируемся!

Разработка моделей машинного обучения для продакшена

Preparing Video For Download...