Ingineria caracteristicilor

Dezvoltarea modelelor de Machine Learning pentru producție

Sinan Ozdemir

Data Scientist and Author

Introducere în ingineria caracteristicilor

  • Transformarea datelor de antrenament pentru maximizarea performanței pipeline-ului ML
  • Reducerea complexității computaționale
  • Exemple
    • Agregarea datelor din surse multiple
    • Construirea de noi caracteristici
    • Aplicarea transformărilor de caracteristici

pipeline de inginerie a caracteristicilor

1 https://www.manning.com/books/feature-engineering-bookcamp
Dezvoltarea modelelor de Machine Learning pentru producție

Agregarea datelor din surse multiple

  • Combinarea datelor din seturi de date diferite
  • Utilizarea mai multor tipuri de date (ex. numerice și categoriale)

Acest lucru ajută prin:

  • Îmbunătățirea acurateței modelelor
  • Posibilitatea de a utiliza modele mai complexe

grafice pe un ecran

Dezvoltarea modelelor de Machine Learning pentru producție

Exemplu de agregare a datelor

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
Dezvoltarea modelelor de Machine Learning pentru producție

Construcția caracteristicilor

  • Crearea de noi caracteristici din cele existente
  • Generarea de noi caracteristici din date preexistente
  • Îmbunătățirea performanței modelului
  • Sporirea interpretabilității modelului
Dezvoltarea modelelor de Machine Learning pentru producție

Exemplu de construcție a caracteristicilor

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
Dezvoltarea modelelor de Machine Learning pentru producție

Transformări ale caracteristicilor

Transformarea caracteristicilor existente

  • Normalizarea distribuțiilor de date
  • Eliminarea valorilor extreme
  • Îmbunătățirea acurateței și performanței modelului
```py
```py

Dezvoltarea modelelor de Machine Learning pentru producție

Selecția caracteristicilor

Selectarea unui subset de caracteristici prin eliminarea celor redundante și irelevante

  • Reduce supraadaptarea
  • Îmbunătățește acuratețea și performanța modelului
  • Sporește interpretabilitatea modelului

selecția caracteristicilor

1 https://www.manning.com/books/feature-engineering-bookcamp
Dezvoltarea modelelor de Machine Learning pentru producție

Exemplu de inginerie a caracteristicilor (cont.)

```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
Dezvoltarea modelelor de Machine Learning pentru producție

Aflați mai multe despre ingineria caracteristicilor

carte fe

Dezvoltarea modelelor de Machine Learning pentru producție

Să exersăm!

Dezvoltarea modelelor de Machine Learning pentru producție

Preparing Video For Download...