Evalueer de Decision Tree
Je kunt de kwaliteit van je model beoordelen door te testen hoe goed het presteert op de testgegevens. Omdat het model niet op deze gegevens is getraind, is dit een objectieve beoordeling van het model.
Een confusion matrix geeft een handig overzicht van voorspellingen versus bekende waarden. Hij heeft vier vakken die de aantallen vertegenwoordigen van:
- True Negatives (TN) — model voorspelt een negatieve uitkomst en de bekende uitkomst is negatief
- True Positives (TP) — model voorspelt een positieve uitkomst en de bekende uitkomst is positief
- False Negatives (FN) — model voorspelt een negatieve uitkomst maar de bekende uitkomst is positief
- False Positives (FP) — model voorspelt een positieve uitkomst maar de bekende uitkomst is negatief.
Deze aantallen (TN, TP, FN en FP) zouden moeten optellen tot het aantal records in de testgegevens, die slechts een subset zijn van de vluchtgegevens. Je kunt dit vergelijken met het aantal records in de testgegevens, namelijk flights_test.count().
Opmerking: Deze voorspellingen zijn gedaan op de testgegevens, dus de aantallen zijn kleiner dan wanneer je op de trainingsgegevens zou voorspellen.
Deze oefening maakt deel uit van de cursus
Machine Learning met PySpark
Oefeninstructies
- Maak een confusion matrix door de combinaties van
labelenpredictionte tellen. Toon het resultaat. - Tel het aantal True Negatives, True Positives, False Negatives en False Positives.
- Bereken de accuracy.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Create a confusion matrix
prediction.groupBy(____, 'prediction').____().____()
# Calculate the elements of the confusion matrix
TN = prediction.filter('prediction = 0 AND label = prediction').count()
TP = prediction.____('____ AND ____').____()
FN = prediction.____('____ AND ____').____()
FP = prediction.____('____ AND ____').____()
# Accuracy measures the proportion of correct predictions
accuracy = ____
print(accuracy)