Pełna ocena modeli
Precyzja i czułość mogą mieć różne wagi, dlatego wynik F-beta jest ważną metryką ewaluacyjną. Pole pod krzywą ROC (AUC) stanowi natomiast cenne uzupełnienie precyzji i czułości – wcześniej widziałeś, że model może osiągać wysokie AUC przy jednocześnie niskiej precyzji. W tym ćwiczeniu obliczysz pełny zestaw metryk ewaluacyjnych dla każdego klasyfikatora.
Dostępna jest funkcja print_estimator_name(), która wyświetla nazwę każdego klasyfikatora. W przestrzeni roboczej masz dostęp do X_train, y_train, X_test, y_test – cechy zostały już wystandaryzowane. Dostępne są również pandas jako pd oraz sklearn.
To ćwiczenie jest częścią kursu
Przewidywanie CTR z użyciem uczenia maszynowego w Pythonie
Instrukcje do ćwiczenia
- Zdefiniuj klasyfikator MLP z jedną ukrytą warstwą złożoną z 10 neuronów i maksymalnie 50 iteracjami.
- Wytrenuj każdy klasyfikator i dokonaj predykcji.
- Użyj implementacji z
sklearn, aby obliczyć precyzję, czułość, wynik F-beta oraz AUC krzywej ROC.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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))