Gesamtbewertung
Denk daran, dass Precision und Recall unterschiedlich gewichtet werden können und daher der F-Beta-Score eine wichtige Bewertungskennzahl ist. Außerdem ist die ROC-AUC-Kurve eine wichtige ergänzende Kennzahl zu Precision und Recall, da du zuvor gesehen hast, dass ein Modell eine hohe AUC, aber eine niedrige Precision haben kann. In dieser Übung berechnest du den vollständigen Satz an Bewertungsmetriken für jeden Klassifikator.
Eine Funktion print_estimator_name() ist gegeben, die den Namen für jeden Klassifikator ausgibt. X_train, y_train, X_test, y_test stehen in deinem Workspace zur Verfügung, und die Features wurden bereits standardisiert. pandas als pd und sklearn stehen dir ebenfalls zur Verfügung.
Diese Übung ist Teil des Kurses
<Kurs>CTR-Vorhersage mit Machine Learning in Python</Kurs>Übungsanweisungen
- Definiere einen MLP-Klassifikator mit einer verborgenen Schicht mit 10 Neuronen und maximal 50 Iterationen.
- Trainiere und sage für jeden Klassifikator voraus.
- Verwende Implementierungen aus
sklearn, um Precision, Recall, F-Beta-Score und die AUC der ROC zu erhalten.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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))