Metody zespołowe

Ćwiczenie pytań rekrutacyjnych z uczenia maszynowego w Pythonie

Lisa Stuart

Data Scientist

Techniki uczenia zespołowego

  • Bootstrap aggregacja
  • Boosting
  • Łączenie modeli (stacking)
Ćwiczenie pytań rekrutacyjnych z uczenia maszynowego w Pythonie

Pomiar błędu

Ćwiczenie pytań rekrutacyjnych z uczenia maszynowego w Pythonie

Płytkie drzewa

Ćwiczenie pytań rekrutacyjnych z uczenia maszynowego w Pythonie

Głębokie drzewa

Ćwiczenie pytań rekrutacyjnych z uczenia maszynowego w Pythonie

Szerokie drzewa

Ćwiczenie pytań rekrutacyjnych z uczenia maszynowego w Pythonie

Model liniowy

Ćwiczenie pytań rekrutacyjnych z uczenia maszynowego w Pythonie

Błąd systematyczny (bias)

Założenie liniowej zależności (błędne)

  • Wysoki błąd systematyczny
  • Niedouczenie
  • Słaba generalizacja modelu
  • Wzrost złożoności zmniejsza błąd systematyczny
Ćwiczenie pytań rekrutacyjnych z uczenia maszynowego w Pythonie

Model złożony

Ćwiczenie pytań rekrutacyjnych z uczenia maszynowego w Pythonie

Wariancja

Modele o wysokiej złożoności:

  • Wysoka wariancja
  • Przeuczenie
  • Słaba generalizacja modelu
Ćwiczenie pytań rekrutacyjnych z uczenia maszynowego w Pythonie

Kompromis bias-wariancja

1 Source: Elements of Statistical Learning by Trevor Hastie, Robert Tibshirani and Jerome Friedman
Ćwiczenie pytań rekrutacyjnych z uczenia maszynowego w Pythonie

Bagging (bootstrap aggregacja)

  • Próbki bootstrapowe
    • Podzbiór wybierany z powtórzeniami
    • Ten sam wiersz może być wybrany wielokrotnie
  • Model budowany dla każdej próbki
  • Uśrednianie wyników
  • Zmniejsza wariancję

1 https://medium.com/@rrfd/boosting-bagging-and-stacking-ensemble-methods-with-sklearn-and-mlens-a455c0c982de
Ćwiczenie pytań rekrutacyjnych z uczenia maszynowego w Pythonie

Boosting

  • Modele budowane sekwencyjnie
  • Błędne predykcje są ważone
  • Zmniejsza błąd systematyczny

1 https://blog.bigml.com/2017/03/14/introduction-to-boosted-trees/
Ćwiczenie pytań rekrutacyjnych z uczenia maszynowego w Pythonie

Łączenie modeli (stacking)

  • Predykcje modelu 1
  • Predykcje modelu 2...
  • Predykcje modelu N
  • Łączenie dla uzyskania najdokładniejszego modelu
    • Predykcje modeli bazowych (Model N) jako wejście do modelu 2. poziomu

1 http://supunsetunga.blogspot.com/
Ćwiczenie pytań rekrutacyjnych z uczenia maszynowego w Pythonie

Pakiet Vecstack

# 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
Ćwiczenie pytań rekrutacyjnych z uczenia maszynowego w Pythonie

Funkcje zespołowe

Algorytm Funkcja
Bootstrap aggregacja sklearn.ensemble.BaggingClassifier()
Boosting sklearn.ensemble.AdaBoostClassifier()
XGBoost xgboost.XGBClassifier()
Ćwiczenie pytań rekrutacyjnych z uczenia maszynowego w Pythonie

Bagging a boosting

Technika Błąd systematyczny Wariancja
Bootstrap aggregacja (Bagging) Wzrost Spadek
Boosting Spadek Wzrost
Ćwiczenie pytań rekrutacyjnych z uczenia maszynowego w Pythonie

Główne techniki zespołowe – pytanie wielokrotnego wyboru

Które z poniższych stwierdzeń dotyczących trzech głównych technik metod zespołowych w uczeniu maszynowym jest prawdziwe? Wybierz stwierdzenie prawdziwe:

  • Metody boostingu zmniejszają wariancję modelu.
  • Metody boostingu zwiększają zdolności predykcyjne klasyfikatora.
  • Bootstrap aggregacja (bagging) zmniejsza błąd systematyczny modelu.
  • Łączenie modeli (stacking) wykorzystuje predykcje poszczególnych modeli i łączy je, tworząc model o wyższej dokładności.
Ćwiczenie pytań rekrutacyjnych z uczenia maszynowego w Pythonie

Główne techniki zespołowe – odpowiedź

Które z poniższych stwierdzeń dotyczących trzech głównych technik metod zespołowych w uczeniu maszynowym jest prawdziwe? Poprawna odpowiedź to:

  • Łączenie modeli (stacking) wykorzystuje predykcje poszczególnych modeli i łączy je, tworząc model o wyższej dokładności. (Model końcowy uzyskany z predykcji kilku modeli indywidualnych prawie zawsze przewyższa modele składowe.)
Ćwiczenie pytań rekrutacyjnych z uczenia maszynowego w Pythonie

Główne techniki zespołowe – błędne odpowiedzi

Które z poniższych stwierdzeń dotyczących trzech głównych technik metod zespołowych w uczeniu maszynowym jest prawdziwe?

  • Metody boostingu zmniejszają wariancję modelu. (Boosting zmniejsza błąd systematyczny modelu, co jednocześnie może zwiększać wariancję, pomagając znaleźć optymalny punkt dla najlepszej generalizacji.)
  • Metody boostingu zwiększają zdolności predykcyjne klasyfikatora. (Boosting zmniejsza błąd systematyczny, co niekoniecznie zwiększa zdolności predykcyjne klasyfikatora.)
  • Bootstrap aggregacja (bagging) zmniejsza błąd systematyczny modelu. (Bagging zmniejsza wariancję modelu.)
Ćwiczenie pytań rekrutacyjnych z uczenia maszynowego w Pythonie

Czas na ćwiczenia!

Ćwiczenie pytań rekrutacyjnych z uczenia maszynowego w Pythonie

Preparing Video For Download...