Ensemblemethoden

Machine Learning-sollicitatievragen oefenen in Python

Lisa Stuart

Data Scientist

Ensembletechnieken

  • Bootstrap-aggregatie
  • Boosting
  • Model stacking
Machine Learning-sollicitatievragen oefenen in Python

Foutmeting

Machine Learning-sollicitatievragen oefenen in Python

Lage bomen

Machine Learning-sollicitatievragen oefenen in Python

Hoge bomen

Machine Learning-sollicitatievragen oefenen in Python

Dikke bomen

Machine Learning-sollicitatievragen oefenen in Python

Lineair model

Machine Learning-sollicitatievragen oefenen in Python

Bias

Aanname lineair verband (onjuist)

  • Hoge bias
  • Underfitting
  • Slechte generalisatie
  • Meer complexiteit verlaagt bias
Machine Learning-sollicitatievragen oefenen in Python

Complex model

Machine Learning-sollicitatievragen oefenen in Python

Varianties

Modellen met hoge complexiteit:

  • Hoge variantie
  • Overfitting
  • Slechte generalisatie
Machine Learning-sollicitatievragen oefenen in Python

Bias-variantie-afruil

1 Bron: The Elements of Statistical Learning door Trevor Hastie, Robert Tibshirani en Jerome Friedman
Machine Learning-sollicitatievragen oefenen in Python

Bagging (Bootstrap-aggregatie)

  • Bootstrapped steekproeven
    • Subset met teruglegging
    • Dezelfde rij kan gekozen worden
  • Model per steekproef
  • Gemiddelde output
  • Verlaagt variantie

1 https://medium.com/@rrfd/boosting-bagging-and-stacking-ensemble-methods-with-sklearn-and-mlens-a455c0c982de
Machine Learning-sollicitatievragen oefenen in Python

Boosting

  • Meerdere modellen sequentieel gebouwd
  • Foute voorspellingen krijgen gewicht
  • Verlaagt bias

1 https://blog.bigml.com/2017/03/14/introduction-to-boosted-trees/
Machine Learning-sollicitatievragen oefenen in Python

Model stacking

  • Voorspellingen model 1
  • Voorspellingen model 2...
  • Voorspellingen model N
  • Stack voor hoogste nauwkeurigheid
    • Gebruikt voorspellingen van basismodellen (model N) als input voor model op 2e niveau

1 http://supunsetunga.blogspot.com/
Machine Learning-sollicitatievragen oefenen in Python

Vecstack-package

# 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
Machine Learning-sollicitatievragen oefenen in Python

Ensemble-functies

Algoritme Functie
Bootstrap-aggregatie sklearn.ensemble.BaggingClassifier()
Boosting sklearn.ensemble.AdaBoostClassifier()
XGBoost xgboost.XGBClassifier()
Machine Learning-sollicitatievragen oefenen in Python

Bagging vs boosting

Techniek Bias Varianties
Bootstrap-aggregatie (Bagging) Toename Afname
Boosting Afname Toename
Machine Learning-sollicitatievragen oefenen in Python

Hoofd-ensembletechnieken MCQ

Welke uitspraak over de drie hoofdtechnieken voor ensemblemethoden in Machine Learning is waar? Kies de ware uitspraak:

  • Boosting verlaagt de modelvariantie.
  • Boosting vergroot het voorspellend vermogen van een classifier.
  • Bootstrap-aggregatie (bagging) verlaagt de modelbias.
  • Model stacking combineert voorspellingen van losse modellen tot een model met hogere nauwkeurigheid.
Machine Learning-sollicitatievragen oefenen in Python

Hoofd-ensembletechnieken MCQ: antwoord

Welke uitspraak over de drie hoofdtechnieken voor ensemblemethoden in Machine Learning is waar? Het juiste antwoord is:

  • Model stacking combineert voorspellingen van losse modellen tot een model met hogere nauwkeurigheid. (Het eindmodel op basis van meerdere individuele modellen presteert bijna altijd beter dan de afzonderlijke.)
Machine Learning-sollicitatievragen oefenen in Python

Hoofd-ensembletechnieken MCQ: onjuiste antwoorden

Welke uitspraak over de drie hoofdtechnieken voor ensemblemethoden in Machine Learning is waar?

  • Boosting verlaagt de modelvariantie. (Boosting verlaagt de bias en kan tegelijk de variantie verhogen om de beste generalisatie te vinden.)
  • Boosting vergroot het voorspellend vermogen van een classifier. (Boosting verlaagt de bias; het voorspellend vermogen kan toenemen, maar niet per se.)
  • Bootstrap-aggregatie (bagging) verlaagt de modelbias. (Bagging verlaagt de variantie.)
Machine Learning-sollicitatievragen oefenen in Python

Laten we oefenen!

Machine Learning-sollicitatievragen oefenen in Python

Preparing Video For Download...