Ingénierie des caractéristiques

Déployer des modèles de Machine Learning en production

Sinan Ozdemir

Data Scientist and Author

Introduction à l'ingénierie des caractéristiques

  • Transformer les données d'entraînement pour maximiser la performance du pipeline de ML
  • Réduire la complexité de calcul
  • Exemples
    • Agréger des données de plusieurs sources
    • Construire de nouvelles caractéristiques
    • Appliquer des transformations de caractéristiques

pipeline d'ingénierie des caractéristiques

1 https://www.manning.com/books/feature-engineering-bookcamp
Déployer des modèles de Machine Learning en production

Agréger des données de plusieurs sources

  • Combiner des données de différents jeux de données
  • Utiliser plusieurs types de données (p. ex. numériques et catégorielles)

Cela aide à :

  • Améliorer la précision des modèles
  • Permettre l'usage de modèles plus complexes

graphiques à l'écran

Déployer des modèles de Machine Learning en production

Exemple d'agrégation de données

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
Déployer des modèles de Machine Learning en production

Construction de caractéristiques

  • Créer de nouvelles caractéristiques à partir des existantes
  • Générer de nouvelles caractéristiques depuis des données préexistantes
  • Améliorer la performance du modèle
  • Accroître l'interprétabilité du modèle
Déployer des modèles de Machine Learning en production

Exemple de construction de caractéristiques

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
Déployer des modèles de Machine Learning en production

Transformations de caractéristiques

Transformer les caractéristiques existantes sur place

  • Normaliser les distributions de données
  • Retirer les valeurs aberrantes
  • Améliorer la précision et la performance du modèle
```py
```py

Déployer des modèles de Machine Learning en production

Sélection de caractéristiques

Sélectionner un sous-ensemble de caractéristiques à partir d'un ensemble plus large en retirant celles qui sont redondantes ou non pertinentes

  • Réduit le surapprentissage
  • Améliore la précision et la performance du modèle
  • Rend le modèle plus interprétable

sélection de caractéristiques

1 https://www.manning.com/books/feature-engineering-bookcamp
Déployer des modèles de Machine Learning en production

Exemple d'ingénierie des caractéristiques (suite)

```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
Déployer des modèles de Machine Learning en production

Pour en savoir plus sur l'ingénierie des caractéristiques

livre sur l'ingénierie des caractéristiques

Déployer des modèles de Machine Learning en production

Passons à la pratique !

Déployer des modèles de Machine Learning en production

Preparing Video For Download...