Özellik mühendisliği ve seçimi

Uçtan Uca Machine Learning

Joshua Stapleton

Machine Learning Engineer

Özellik mühendisliği

Özellik oluşturma

  • Sorunu basitleştirir
  • Model verimliliğini artırır

Teknikler

  • Mevcut özellikleri değiştir
  • Yeni özellikler tasarla

Faydalar

  • Daha kolay dağıtım, bakım, eğitim
  • Yorumlanabilirlik artışı

Makine öğrenimi yaşam döngüsünün mevcut aşaması: özellik mühendisliği

Uçtan Uca Machine Learning

Normalizasyon

  • Sayısal özellikleri [0, 1] aralığına ölçekler
  • Ölçek/aralıkları farklı olduğunda faydalıdır
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import Normalizer

# Veriyi ayır
X_train, X_test = train_test_split(df, test_size=0.2, random_state=42)
# Normalizer nesnesi oluştur, eğitim verisine uydur, normalize et ve testi dönüştür
norm = Normalizer()
X_train_norm = norm.fit_transform(X_train)
X_test_norm = norm.transform(X_test)
Uçtan Uca Machine Learning

Standartlaştırma

  • Ortalamayı 0, varyansı 1 olacak şekilde ölçekler
  • Benzer ortalama ve varyans varsayan algoritmalar için yararlı
from sklearn.preprocessing import StandardScaler

# Veriyi ayır
X_train, X_test = train_test_split(df, test_size=0.2, random_state=42)
# Bir ölçekleyici oluştur ve eğitim verisini standartlaştır
sc = StandardScaler()
X_train_stzd = sc.fit_transform(X_train)
# Test verisini yalnızca dönüştür
X_test_stzd = sc.transform(X_test)
Uçtan Uca Machine Learning

İyi bir özellik nedir?

  • İlgili özellikleri kullanın
  • Randevu günündeki hava, tanıyı etkilememelidir

 

Özellik seçiminde özellik ilgililiği ilkesini gösteren fırtınalı hava resmi

  • Farklı (ortogonal) özellikler kullanın
  • Yaşı aylarda ve yıllarda ölçen iki özellik yardımcı olmaz

 

Özellik seçiminde ortogonallik ilkesini gösteren bir diyagram

Uçtan Uca Machine Learning

sklearn.feature_selection

 

from sklearn.ensemble import RandomForestClassifier
from sklearn.feature_selection import SelectFromModel
from sklearn.model_selection import train_test_split

# Veri sızıntısını önlemek için önce veriyi eğitim ve test alt kümelerine ayırma X_train, X_test, y_train, y_test = train_test_split( heart_disease_df_X, heart_disease_df_y, test_size=0.2, random_state=42)
Uçtan Uca Machine Learning

sklearn.feature_selection (devamı)

 

# Rastgele orman modelini tanımla ve uygula
rf = RandomForestClassifier(n_jobs=-1, class_weight='balanced', max_depth=5)
rf.fit(X_train, y_train)

# Özellik seçimini tanımla ve çalıştır model = SelectFromModel(rf, prefit=True) features_bool = model.get_support() features = heart_disease_df.columns[features_bool]
Uçtan Uca Machine Learning

Hadi pratik yapalım!

Uçtan Uca Machine Learning

Preparing Video For Download...