Özellik mühendisliği

Üretim İçin Machine Learning Modelleri Geliştirme

Sinan Ozdemir

Data Scientist and Author

Özellik mühendisliğine giriş

  • Eğitim verisini dönüştürerek ML ardışık düzeninin performansını en üst düzeye çıkarmak
  • Hesaplama karmaşıklığını azaltmak
  • Örnekler
    • Veriyi birden çok kaynaktan birleştirmek
    • Yeni özellikler oluşturmak
    • Özellik dönüşümleri uygulamak

özellik mühendisliği ardışık düzeni

1 https://www.manning.com/books/feature-engineering-bookcamp
Üretim İçin Machine Learning Modelleri Geliştirme

Birden çok kaynaktan veriyi toplama

  • Farklı veri kümelerinden veriyi birleştirmek
  • Birden çok veri türünü kullanmak (örn. sayısal ve kategorik)

Şunlara yardımcı olur:

  • Modellerin doğruluğunu artırmak
  • Daha karmaşık modelleri kullanabilmek

ekranda grafikler

Üretim İçin Machine Learning Modelleri Geliştirme

Veri toplamanın örneği

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
Üretim İçin Machine Learning Modelleri Geliştirme

Özellik oluşturma

  • Mevcut özelliklerden yenilerini üretmek
  • Önceden var olan veriden yeni özellikler türetmek
  • Model performansını artırmak
  • Modelin yorumlanabilirliğini iyileştirmek
Üretim İçin Machine Learning Modelleri Geliştirme

Özellik oluşturma örneği

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
Üretim İçin Machine Learning Modelleri Geliştirme

Özellik dönüşümleri

Mevcut özellikleri yerinde dönüştürme

  • Veri dağılımlarını normalleştirme
  • Aykırı değerleri kaldırma
  • Modelin doğruluk ve performansını artırma
```py
```py

Üretim İçin Machine Learning Modelleri Geliştirme

Özellik seçimi

Daha büyük bir özellik kümesinden gereksiz ve ilgisiz olanları çıkararak bir alt küme seçme

  • Aşırı uyumu azaltır
  • Model doğruluğunu ve performansını artırır
  • Modelin yorumlanabilirliğini iyileştirir

özellik seçimi

1 https://www.manning.com/books/feature-engineering-bookcamp
Üretim İçin Machine Learning Modelleri Geliştirme

Özellik mühendisliği örn. (devam)

```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
Üretim İçin Machine Learning Modelleri Geliştirme

Özellik mühendisliği hakkında daha fazlası

öm kitabı

Üretim İçin Machine Learning Modelleri Geliştirme

Hadi pratik yapalım!

Üretim İçin Machine Learning Modelleri Geliştirme

Preparing Video For Download...