Un modèle de bagging plus complexe
Après avoir exploré les données sur les semi‑conducteurs, construisons maintenant un classifieur par bagging pour prédire l'étiquette 'Pass/Fail' à partir des variables d'entrée.
Le jeu de données prétraité est disponible dans votre espace de travail sous le nom uci_secom, et des ensembles d'entraînement et de test ont été créés pour vous.
Comme la cible présente un fort déséquilibre des classes, utilisez une régression logistique "balanced" comme estimateur de base ici.
Nous allons aussi réduire le temps de calcul pour LogisticRegression avec le paramètre solver='liblinear', un optimiseur plus rapide que la valeur par défaut.
Cette activité fait partie du cours
Méthodes d'ensemble en Python
Instructions de l’exercice
- Instanciez une régression logistique à utiliser comme classifieur de base avec les paramètres :
class_weight='balanced',solver='liblinear'etrandom_state=42. - Créez un classifieur par bagging en utilisant cette régression logistique comme estimateur de base, en fixant le nombre maximal de caractéristiques à
10et en incluant le score hors sac (out-of-bag). - Affichez le score hors sac pour le comparer à la justesse (accuracy).
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Build a balanced logistic regression
clf_lr = ____
# Build and fit a bagging classifier
clf_bag = ____(____, ____, ____, random_state=500)
clf_bag.fit(X_train, y_train)
# Evaluate the accuracy on the test set and show the out-of-bag score
pred = clf_bag.predict(X_test)
print('Accuracy: {:.2f}'.format(accuracy_score(y_test, pred)))
print('OOB-Score: {:.2f}'.format(____))
# Print the confusion matrix
print(confusion_matrix(y_test, pred))