Inżynieria cech

Tworzenie modeli uczenia maszynowego na potrzeby produkcji

Sinan Ozdemir

Data Scientist and Author

Wprowadzenie do inżynierii cech

  • Przekształcanie danych treningowych w celu maksymalizacji wydajności potoku ML
  • Redukcja złożoności obliczeniowej
  • Przykłady
    • Agregowanie danych z wielu źródeł
    • Konstruowanie nowych cech
    • Stosowanie transformacji cech

potok inżynierii cech

1 https://www.manning.com/books/feature-engineering-bookcamp
Tworzenie modeli uczenia maszynowego na potrzeby produkcji

Agregowanie danych z wielu źródeł

  • Łączenie danych z różnych zbiorów
  • Korzystanie z wielu typów danych (np. numerycznych i kategorycznych)

Korzyści:

  • Poprawa dokładności modeli
  • Możliwość stosowania bardziej złożonych modeli

wykresy na ekranie

Tworzenie modeli uczenia maszynowego na potrzeby produkcji

Przykład agregacji danych

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
Tworzenie modeli uczenia maszynowego na potrzeby produkcji

Konstruowanie cech

  • Tworzenie nowych cech na podstawie istniejących
  • Generowanie nowych cech z dostępnych danych
  • Poprawa wydajności modelu
  • Zwiększenie interpretowalności modelu
Tworzenie modeli uczenia maszynowego na potrzeby produkcji

Przykład konstruowania cech

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
Tworzenie modeli uczenia maszynowego na potrzeby produkcji

Transformacje cech

Przekształcanie istniejących cech w miejscu

  • Normalizacja rozkładów danych
  • Usuwanie wartości odstających
  • Poprawa dokładności i wydajności modelu
```py
```py

Tworzenie modeli uczenia maszynowego na potrzeby produkcji

Selekcja cech

Wybór podzbioru cech z większego zbioru przez usunięcie redundantnych i nieistotnych

  • Redukuje przetrenowanie
  • Poprawia dokładność i wydajność modelu
  • Zwiększa interpretowalność modelu

selekcja cech

1 https://www.manning.com/books/feature-engineering-bookcamp
Tworzenie modeli uczenia maszynowego na potrzeby produkcji

Przykład inżynierii cech – ciąg dalszy

```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
Tworzenie modeli uczenia maszynowego na potrzeby produkcji

Dowiedz się więcej o inżynierii cech

książka o inżynierii cech

Tworzenie modeli uczenia maszynowego na potrzeby produkcji

Czas na ćwiczenia!

Tworzenie modeli uczenia maszynowego na potrzeby produkcji

Preparing Video For Download...