Ensemblemetoder

Öva på maskininlärningsintervjufrågor i Python

Lisa Stuart

Data Scientist

Tekniker för ensemblinlärning

  • Bootstrap aggregation
  • Boosting
  • Modellstackning
Öva på maskininlärningsintervjufrågor i Python

Felmätning

Öva på maskininlärningsintervjufrågor i Python

Korta träd

Öva på maskininlärningsintervjufrågor i Python

Höga träd

Öva på maskininlärningsintervjufrågor i Python

Breda träd

Öva på maskininlärningsintervjufrågor i Python

Linjär modell

Öva på maskininlärningsintervjufrågor i Python

Bias

Antagande om linjärt samband (felaktigt)

  • Hög bias
  • Underanpassning
  • Dålig generalisering av modellen
  • Ökad komplexitet minskar bias
Öva på maskininlärningsintervjufrågor i Python

Komplex modell

Öva på maskininlärningsintervjufrågor i Python

Varians

Modeller med hög komplexitet:

  • Hög varians
  • Överanpassning
  • Dålig generalisering av modellen
Öva på maskininlärningsintervjufrågor i Python

Bias-varians-avvägningen

1 Källa: Elements of Statistical Learning av Trevor Hastie, Robert Tibshirani och Jerome Friedman
Öva på maskininlärningsintervjufrågor i Python

Bagging (Bootstrap aggregation)

  • Bootstrappade urval
    • Delmängd vald med återläggning
    • Samma rad kan väljas flera gånger
  • En modell byggs för varje urval
  • Resultaten medelvärdesberäknas
  • Minskar varians

1 https://medium.com/@rrfd/boosting-bagging-and-stacking-ensemble-methods-with-sklearn-and-mlens-a455c0c982de
Öva på maskininlärningsintervjufrågor i Python

Boosting

  • Flera modeller byggs sekventiellt
  • Felaktiga prediktioner viktas upp
  • Minskar bias

1 https://blog.bigml.com/2017/03/14/introduction-to-boosted-trees/
Öva på maskininlärningsintervjufrågor i Python

Modellstackning

  • Modell 1:s prediktioner
  • Modell 2:s prediktioner...
  • Modell N:s prediktioner
  • Staplas för högsta noggrannhet
    • Använder basmodellens (Modell N) prediktioner som indata till modellen på nivå 2

1 http://supunsetunga.blogspot.com/
Öva på maskininlärningsintervjufrågor i Python

Vecstack-paketet

# 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
Öva på maskininlärningsintervjufrågor i Python

Ensemblefunktioner

Algoritm Funktion
Bootstrap aggregation sklearn.ensemble.BaggingClassifier()
Boosting sklearn.ensemble.AdaBoostClassifier()
XGBoost xgboost.XGBClassifier()
Öva på maskininlärningsintervjufrågor i Python

Bagging vs. boosting

Teknik Bias Varians
Bootstrap aggregation (Bagging) Ökar Minskar
Boosting Minskar Ökar
Öva på maskininlärningsintervjufrågor i Python

Flervalsfråga om ensembletekniker

Vilket av följande påståenden stämmer om de tre viktigaste teknikerna för ensemblemetoder inom maskininlärning? Välj det påstående som är sant:

  • Boostingmetoder minskar modellens varians.
  • Boostingmetoder ökar en klassificerares prediktionsförmåga.
  • Bootstrap aggregation, eller bagging, minskar modellens bias.
  • Modellstackning tar prediktionerna från enskilda modeller och kombinerar dem till en modell med högre noggrannhet.
Öva på maskininlärningsintervjufrågor i Python

Flervalsfråga om ensembletekniker: svar

Vilket av följande påståenden stämmer om de tre viktigaste teknikerna för ensemblemetoder inom maskininlärning? Rätt svar är:

  • Modellstackning tar prediktionerna från enskilda modeller och kombinerar dem till en modell med högre noggrannhet. (Den slutliga modellen från flera enskilda modellers prediktioner överträffar nästan alltid de enskilda modellerna.)
Öva på maskininlärningsintervjufrågor i Python

Flervalsfråga om ensembletekniker: felaktiga svar

Vilket av följande påståenden stämmer om de tre viktigaste teknikerna för ensemblemetoder inom maskininlärning?

  • Boostingmetoder minskar modellens varians. (Boostingmetoder minskar modellens bias, vilket samtidigt kan öka variansen och hitta den optimala balansen för bästa generalisering.)
  • Boostingmetoder ökar en klassificerares prediktionsförmåga. (Boosting minskar modellens bias, vilket inte nödvändigtvis ökar klassificerарens prediktionsförmåga.)
  • Bootstrap aggregation, eller bagging, minskar modellens bias. (Bagging minskar modellens varians.)
Öva på maskininlärningsintervjufrågor i Python

Nu kör vi en övning!

Öva på maskininlärningsintervjufrågor i Python

Preparing Video For Download...