Valutazione completa
Ricorda che precision e recall possono avere pesi diversi e quindi il punteggio F-beta è una metrica di valutazione importante. Inoltre, la curva ROC e la sua AUC sono metriche complementari fondamentali rispetto a precision e recall, dato che hai visto in precedenza come un modello possa avere un’AUC alta ma una precision bassa. In questo esercizio calcolerai l’intero set di metriche di valutazione per ciascun classificatore.
È fornita una funzione print_estimator_name() che restituisce il nome di ciascun classificatore. X_train, y_train, X_test, y_test sono disponibili nel tuo workspace e le feature sono già state standardizzate. pandas come pd e sklearn sono anch’essi disponibili nel tuo workspace.
Questo esercizio fa parte del corso
Prevedere il CTR con il Machine Learning in Python
Istruzioni dell'esercizio
- Definisci un classificatore MLP con un livello nascosto di 10 unità e un massimo di 50 iterazioni.
- Allena e predici per ciascun classificatore.
- Usa le implementazioni di
sklearnper ottenere precision, recall, punteggio F-beta e l’AUC della ROC.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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))