Machine learning avec des modèles arborescents en Python
Elie Kawerk
Data Scientist
Boosting : Méthode d'ensemble combinant plusieurs apprenants faibles pour former un apprenant fort.
Apprenant faible : Le modèle obtient des résultats légèrement supérieurs à ceux obtenus par simple hasard.
Exemple d'apprenant faible : Arbre de décision (CART dont la profondeur maximale est de 1).
Entraîner un ensemble de prédicteurs de manière séquentielle.
Chaque prédicteur tente de corriger son prédécesseur.
Méthodes de renforcement les plus courantes :
AdaBoost,
Gradient Boosting.
Signifie Adaptive Boosting.
Chaque prédicteur accorde davantage d'attention aux cas mal prédits par son prédécesseur.
Obtenu en modifiant les pondérations des instances d'entraînement.
À chaque prédicteur est attribué un coefficient $\alpha$.
$\alpha$ dépend de l'erreur d'apprentissage du prédicteur.

Taux d'apprentissage : $0 < \eta \leq 1$

Classification :
AdaBoostClassifier.Régression :
AdaBoostRegressor.# Import models and utility functions
from sklearn.ensemble import AdaBoostClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import roc_auc_score
from sklearn.model_selection import train_test_split
# Set seed for reproducibility
SEED = 1
# Split data into 70% train and 30% test
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3,
stratify=y,
random_state=SEED)
# Instantiate a classification-tree 'dt' dt = DecisionTreeClassifier(max_depth=1, random_state=SEED)# Instantiate an AdaBoost classifier 'adab_clf' adb_clf = AdaBoostClassifier(base_estimator=dt, n_estimators=100)# Fit 'adb_clf' to the training set adb_clf.fit(X_train, y_train) # Predict the test set probabilities of positive class y_pred_proba = adb_clf.predict_proba(X_test)[:,1]# Evaluate test-set roc_auc_score adb_clf_roc_auc_score = roc_auc_score(y_test, y_pred_proba)
# Print adb_clf_roc_auc_score
print('ROC AUC score: {:.2f}'.format(adb_clf_roc_auc_score))
ROC AUC score: 0.99
Machine learning avec des modèles arborescents en Python