Topluluk (Ensemble) yöntemleri

Python ile Machine Learning Mülakat Sorularını Pratik Etme

Lisa Stuart

Data Scientist

Topluluk öğrenme teknikleri

  • Bootstrap Aggregation
  • Boosting
  • Model stacking
Python ile Machine Learning Mülakat Sorularını Pratik Etme

Hata ölçümü

Python ile Machine Learning Mülakat Sorularını Pratik Etme

Kısa ağaçlar

Python ile Machine Learning Mülakat Sorularını Pratik Etme

Uzun ağaçlar

Python ile Machine Learning Mülakat Sorularını Pratik Etme

Geniş ağaçlar

Python ile Machine Learning Mülakat Sorularını Pratik Etme

Doğrusal model

Python ile Machine Learning Mülakat Sorularını Pratik Etme

Bias

Doğrusal ilişki varsayımı (yanlış)

  • Yüksek önyargı (bias)
  • Eksik öğrenme (underfitting)
  • Zayıf model genellemesi
  • Karmaşıklık artarsa bias azalır
Python ile Machine Learning Mülakat Sorularını Pratik Etme

Karmaşık model

Python ile Machine Learning Mülakat Sorularını Pratik Etme

Varyans

Yüksek karmaşıklık modelleri:

  • Yüksek varyans
  • Aşırı öğrenme (overfitting)
  • Zayıf model genellemesi
Python ile Machine Learning Mülakat Sorularını Pratik Etme

Bias-Varyans Dengesi

1 Kaynak: Trevor Hastie, Robert Tibshirani ve Jerome Friedman, Elements of Statistical Learning
Python ile Machine Learning Mülakat Sorularını Pratik Etme

Bagging (Bootstrap aggregation)

  • Bootstrapped örnekler
    • Yerine koymalı seçilen alt küme
    • Aynı satır birden seçilebilir
  • Her örnek için model kurulur
  • Çıktılar ortalanır
  • Varyansı düşürür

1 https://medium.com/@rrfd/boosting-bagging-and-stacking-ensemble-methods-with-sklearn-and-mlens-a455c0c982de
Python ile Machine Learning Mülakat Sorularını Pratik Etme

Boosting

  • Birden çok model art arda kurulur
  • Hatalı tahminlere ağırlık verilir
  • Biası düşürür

1 https://blog.bigml.com/2017/03/14/introduction-to-boosted-trees/
Python ile Machine Learning Mülakat Sorularını Pratik Etme

Model stacking

  • Model 1 tahminleri
  • Model 2 tahminleri...
  • Model N tahminleri
  • En yüksek doğruluk için istifle{{""}}
    • Taban model (Model N) tahminleri 2. seviye modele girdi olur

1 http://supunsetunga.blogspot.com/
Python ile Machine Learning Mülakat Sorularını Pratik Etme

Vecstack paketi

# import modules
from sklearn.ensemble import BaggingClassifier
from sklearn.ensemble import AdaBoostClassifier
from xgboost import XGBClassifier
from vecstack import stacking

# Create list: stacked_models
stacked_models = [BaggingClassifier(n_estimators=25, random_state=123), AdaBoostClassifier(n_estimators=25, random_state=123)]

# Stack the models: stack_train, stack_test
stack_train, stack_test = stacking(stacked_models, X_train, y_train, X_test, regression=False, mode='oof_pred_bag', 
                                   needs_proba=False, metric=accuracy_score, n_folds=4, stratified=True, shuffle=True, random_state=0, verbose=2)

# Initialize and fit 2nd level model
final_model = XGBClassifier(random_state=123, n_jobs=-1, learning_rate=0.1, n_estimators=10, max_depth=3)
final_model_fit = final_model.fit(stack_train, y_train)

# Predict: stacked_pred
stacked_pred = final_model.predict(stack_test)

# Final prediction score
print('Final prediction score: [%.8f]' % accuracy_score(y_test, stacked_pred))
1 https://towardsdatascience.com/automate-stacking-in-python-fc3e7834772e
Python ile Machine Learning Mülakat Sorularını Pratik Etme

Topluluk işlevleri

Algoritma İşlev
Bootstrap aggregation sklearn.ensemble.BaggingClassifier()
Boosting sklearn.ensemble.AdaBoostClassifier()
XGBoost xgboost.XGBClassifier()
Python ile Machine Learning Mülakat Sorularını Pratik Etme

Bagging vs boosting

Teknik Bias Varyans
Bootstrap aggregation (Bagging) Artar Azalır
Boosting Azalır Artar
Python ile Machine Learning Mülakat Sorularını Pratik Etme

Başlıca topluluk teknikleri SÇD

Machine Learning'de topluluk yöntemlerinde kullanılan üç ana teknikle ilgili aşağıdaki ifadelerden hangisi doğrudur? Doğru ifadeyi seç:

  • Boosting yöntemleri model varyansını azaltır.
  • Boosting yöntemleri bir sınıflandırıcının kestirim gücünü artırır.
  • Bootstrap aggregation, yani bagging, model biasını azaltır.
  • Model stacking, tekil modellerin tahminlerini alıp daha yüksek doğrulukta bir model oluşturmak için birleştirir.
Python ile Machine Learning Mülakat Sorularını Pratik Etme

Başlıca topluluk teknikleri SÇD: yanıt

Machine Learning'de topluluk yöntemlerinde kullanılan üç ana teknikle ilgili aşağıdaki ifadelerden hangisi doğrudur? Doğru yanıt:

  • Model stacking, tekil modellerin tahminlerini alıp daha yüksek doğrulukta bir model oluşturmak için birleştirir. (Birden çok tekil modelin tahminlerinden elde edilen son model, çoğu zaman tekil modellerden daha iyi performans gösterir.)
Python ile Machine Learning Mülakat Sorularını Pratik Etme

Başlıca topluluk teknikleri SÇD: yanlış yanıtlar

Machine Learning'de topluluk yöntemlerinde kullanılan üç ana teknikle ilgili aşağıdaki ifadelerden hangisi doğrudur?

  • Boosting yöntemleri model varyansını azaltır. (Boosting, model biasını azaltır; bu da en iyi genelleme için o tatlı noktayı bulmak üzere varyansı artırmaya yardımcı olabilir.)
  • Boosting yöntemleri bir sınıflandırıcının kestirim gücünü artırır. (Boosting biası azaltır; bu, bir sınıflandırıcının kestirim gücünü artırabilir de artırmayabilir de.)
  • Bootstrap aggregation, yani bagging, model biasını azaltır. (Bagging model varyansını azaltır.)
Python ile Machine Learning Mülakat Sorularını Pratik Etme

Hadi pratik yapalım!

Python ile Machine Learning Mülakat Sorularını Pratik Etme

Preparing Video For Download...