Särdragshantering

Att utveckla maskininlärningsmodeller för produktion

Sinan Ozdemir

Data Scientist and Author

Introduktion till särdragshantering

  • Transformera träningsdata för att maximera ML-pipelinens prestanda
  • Minska beräkningskomplexitet
  • Exempel
    • Aggregera data från flera källor
    • Konstruera nya särdrag
    • Tillämpa särdragstransformationer

pipeline för särdragshantering

1 https://www.manning.com/books/feature-engineering-bookcamp
Att utveckla maskininlärningsmodeller för produktion

Aggregera data från flera källor

  • Kombinera data från olika datamängder
  • Använda flera datatyper (t.ex. numeriska och kategoriska)

Detta bidrar till att:

  • Förbättra modellernas noggrannhet
  • Möjliggöra användning av mer komplexa modeller

grafer på en skärm

Att utveckla maskininlärningsmodeller för produktion

Exempel på dataaggregering

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
Att utveckla maskininlärningsmodeller för produktion

Särdragskonstruktion

  • Skapa nya särdrag från befintliga
  • Generera nya särdrag från befintlig data
  • Förbättra modellens prestanda
  • Förbättra modellens tolkbarhet
Att utveckla maskininlärningsmodeller för produktion

Exempel på särdragskonstruktion

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
Att utveckla maskininlärningsmodeller för produktion

Särdragstransformationer

Transformera befintliga särdrag på plats

  • Normalisera datafördelningar
  • Ta bort avvikande värden
  • Förbättra modellens noggrannhet och prestanda
```py
```py

Att utveckla maskininlärningsmodeller för produktion

Särdragsurval

Välja ut en delmängd särdrag från en större mängd genom att ta bort redundanta och irrelevanta särdrag

  • Minskar överanpassning
  • Förbättrar modellens noggrannhet och prestanda
  • Förbättrar modellens tolkbarhet

särdragsurval

1 https://www.manning.com/books/feature-engineering-bookcamp
Att utveckla maskininlärningsmodeller för produktion

Exempel på särdragshantering (forts.)

```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
Att utveckla maskininlärningsmodeller för produktion

Lär dig mer om särdragshantering

bok om särdragshantering

Att utveckla maskininlärningsmodeller för produktion

Nu kör vi en övning!

Att utveckla maskininlärningsmodeller för produktion

Preparing Video For Download...