Інженерія ознак

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

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...