Évaluation globale
Rappelez-vous que la précision et le rappel peuvent être pondérés différemment; le score F-bêta est donc une mesure d'évaluation importante. De plus, l'aire sous la courbe ROC (AUC) est une mesure complémentaire essentielle à la précision et au rappel, puisque vous avez vu qu'un modèle peut avoir une AUC élevée mais une faible précision. Dans cet exercice, vous calculerez l'ensemble des mesures d'évaluation pour chaque classificateur.
Une fonction print_estimator_name() est fournie pour afficher le nom de chaque classificateur. X_train, y_train, X_test, y_test sont disponibles dans votre environnement de travail, et les variables explicatives ont déjà été normalisées. pandas sous pd et sklearn sont aussi disponibles dans votre environnement.
Cette activité fait partie du cours
Prédire le CTR avec le Machine Learning en Python
Instructions de l’exercice
- Définissez un classificateur MLP avec une couche cachée de 10 unités cachées et un maximum de 50 itérations.
- Entraînez et prédisez pour chaque classificateur.
- Utilisez les fonctions de
sklearnpour obtenir la précision, le rappel, le score F-bêta et l'AUC de la courbe ROC.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Create classifiers
clfs = [LogisticRegression(), DecisionTreeClassifier(), RandomForestClassifier(),
____(____ = (10, ), ____ = 50)]
# Produce all evaluation metrics for each classifier
for clf in clfs:
print("Evaluating classifier: %s" %(print_estimator_name(clf)))
y_score = clf.fit(X_train, y_train).____(X_test)
y_pred = clf.fit(X_train, y_train).____(X_test)
prec = ____(y_test, y_pred, average = 'weighted')
recall = ____(y_test, y_pred, average = 'weighted')
fbeta = ____(y_test, y_pred, beta = 0.5, average = 'weighted')
roc_auc = ____(y_test, y_score[:, 1])
print("Precision: %s: Recall: %s, F-beta score: %s, AUC of ROC curve: %s"
%(prec, recall, fbeta, roc_auc))