Totale score
Onthoud dat precision en recall verschillend gewogen kunnen worden en dat de F-bèta-score daarom een belangrijke evaluatiemetric is. Daarnaast is de ROC van de AUC-curve een belangrijke aanvulling op precision en recall, omdat je eerder hebt gezien dat een model een hoge AUC maar een lage precision kan hebben. In deze oefening bereken je de volledige set evaluatiemetrics voor elke classifier.
Een functie print_estimator_name() is beschikbaar die de naam van elke classifier geeft. X_train, y_train, X_test, y_test staan klaar in je werkruimte, en de features zijn al gestandaardiseerd. pandas als pd en sklearn zijn ook beschikbaar in je werkruimte.
Deze oefening maakt deel uit van de cursus
CTR voorspellen met Machine Learning in Python
Oefeninstructies
- Definieer een MLP-classifier met één verborgen laag van 10 verborgen units en maximaal 50 iteraties.
- Train en voorspel voor elke classifier.
- Gebruik implementaties uit
sklearnom de precision, recall, F-bèta-score en de AUC van de ROC-score te berekenen.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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))