Méthodes d'ensemble

S'exercer aux questions d'entrevue en Machine Learning avec Python

Lisa Stuart

Data Scientist

Techniques d'ensemble learning

  • Bootstrap Aggregation
  • Boosting
  • Empilement de modèles
S'exercer aux questions d'entrevue en Machine Learning avec Python

Mesure de l'erreur

S'exercer aux questions d'entrevue en Machine Learning avec Python

Arbres peu profonds

S'exercer aux questions d'entrevue en Machine Learning avec Python

Arbres profonds

S'exercer aux questions d'entrevue en Machine Learning avec Python

Arbres larges

S'exercer aux questions d'entrevue en Machine Learning avec Python

Modèle linéaire

S'exercer aux questions d'entrevue en Machine Learning avec Python

Biais

Hypothèse de relation linéaire (fausse)

  • Biais élevé
  • Sous‑apprentissage
  • Mauvaise généralisation du modèle
  • Accroître la complexité réduit le biais
S'exercer aux questions d'entrevue en Machine Learning avec Python

Modèle complexe

S'exercer aux questions d'entrevue en Machine Learning avec Python

Variance

Modèles très complexes :

  • Forte variance
  • Surapprentissage
  • Mauvaise généralisation du modèle
S'exercer aux questions d'entrevue en Machine Learning avec Python

Compromis biais‑variance

1 Source : Elements of Statistical Learning, Trevor Hastie, Robert Tibshirani et Jerome Friedman
S'exercer aux questions d'entrevue en Machine Learning avec Python

Bagging (Bootstrap aggregation)

  • Échantillons bootstrappés
    • Sous‑ensemble choisi avec remise
    • La même ligne peut être sélectionnée
  • Modèle construit pour chaque échantillon
  • Moyenne des sorties
  • Réduit la variance

1 https://medium.com/@rrfd/boosting-bagging-and-stacking-ensemble-methods-with-sklearn-and-mlens-a455c0c982de
S'exercer aux questions d'entrevue en Machine Learning avec Python

Boosting

  • Plusieurs modèles construits séquentiellement
  • Les prédictions erronées sont pondérées
  • Réduit le biais

1 https://blog.bigml.com/2017/03/14/introduction-to-boosted-trees/
S'exercer aux questions d'entrevue en Machine Learning avec Python

Empilement de modèles

  • Prédictions du Modèle 1
  • Prédictions du Modèle 2...
  • Prédictions du Modèle N
  • Empiler pour un modèle plus précis
    • Utilise les prédictions du modèle de base (Modèle N) comme entrées d'un modèle de 2e niveau

1 http://supunsetunga.blogspot.com/
S'exercer aux questions d'entrevue en Machine Learning avec Python

Forfait 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
S'exercer aux questions d'entrevue en Machine Learning avec Python

Fonctions d'ensemble

Algorithme Fonction
Bootstrap aggregation sklearn.ensemble.BaggingClassifier()
Boosting sklearn.ensemble.AdaBoostClassifier()
XGBoost xgboost.XGBClassifier()
S'exercer aux questions d'entrevue en Machine Learning avec Python

Bagging vs boosting

Technique Biais Variance
Bootstrap aggregation (Bagging) Augmente Diminue
Boosting Diminue Augmente
S'exercer aux questions d'entrevue en Machine Learning avec Python

Techniques d'ensemble majeures : QCM

Laquelle des affirmations suivantes est vraie à propos des trois principales techniques utilisées pour les méthodes d'ensemble en Machine Learning ? Sélectionnez l'affirmation vraie :

  • Les méthodes de boosting diminuent la variance du modèle.
  • Les méthodes de boosting augmentent la capacité prédictive d'un classificateur.
  • Le bootstrap aggregation, ou bagging, diminue le biais du modèle.
  • L'empilement de modèles combine les prédictions de modèles individuels pour créer un modèle plus précis.
S'exercer aux questions d'entrevue en Machine Learning avec Python

Techniques d'ensemble majeures : réponse

Laquelle des affirmations suivantes est vraie à propos des trois principales techniques utilisées pour les méthodes d'ensemble en Machine Learning ? La bonne réponse est :

  • L'empilement de modèles combine les prédictions de modèles individuels pour créer un modèle plus précis. (Le modèle final issu des prédictions de plusieurs modèles individuels surpasse presque toujours chacun d'eux.)
S'exercer aux questions d'entrevue en Machine Learning avec Python

Techniques d'ensemble majeures : réponses incorrectes

Laquelle des affirmations suivantes est vraie à propos des trois principales techniques utilisées pour les méthodes d'ensemble en Machine Learning ?

  • Les méthodes de boosting diminuent la variance du modèle. (Le boosting diminue le biais, ce qui, en même temps, peut augmenter la variance pour atteindre le juste milieu d'une meilleure généralisation.)
  • Les méthodes de boosting augmentent la capacité prédictive d'un classificateur. (Le boosting diminue le biais ; cela peut ou non accroître la capacité prédictive d'un classificateur.)
  • Le bootstrap aggregation, ou bagging, diminue le biais du modèle. (Le bagging diminue la variance du modèle.)
S'exercer aux questions d'entrevue en Machine Learning avec Python

Passons à la pratique !

S'exercer aux questions d'entrevue en Machine Learning avec Python

Preparing Video For Download...