Utvärdera den logistiska regressionsmodellen
Noggrannhet (accuracy) är generellt sett inget tillförlitligt mått, eftersom det kan snedvridas av den vanligaste målklassen.
Det finns två andra användbara mått:
- precision och
- recall.
Se slides för den här lektionen för att hitta de relevanta formlerna.
Precision är andelen positiva prediktioner som är korrekta. Av alla flygningar som förutsägs bli försenade – hur stor andel är faktiskt försenade?
Recall är andelen positiva utfall som förutsägs korrekt. Av alla försenade flygningar – hur stor andel förutsäger modellen rätt?
Precision och recall formuleras vanligtvis utifrån den positiva målklassen. Det går dock även att beräkna viktade versioner av dessa mått, som tar hänsyn till båda målklasserna.
Konfusionsmatrisens komponenter finns tillgängliga som TN, TP, FN och FP, samt objektet prediction.
Den här övningen är en del av kursen
Maskininlärning med PySpark
Övningsinstruktioner
- Beräkna precision och recall.
- Skapa en utvärderare för flera klasser och utvärdera viktad precision.
- Skapa en binär utvärderare och utvärdera AUC med måttet
"areaUnderROC".
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
from pyspark.ml.evaluation import MulticlassClassificationEvaluator, BinaryClassificationEvaluator
# Calculate precision and recall
precision = ____
recall = ____
print('precision = {:.2f}\nrecall = {:.2f}'.format(precision, recall))
# Find weighted precision
multi_evaluator = ____
weighted_precision = multi_evaluator.____(prediction, {multi_evaluator.metricName: "____"})
# Find AUC
binary_evaluator = ____
auc = binary_evaluator.____(____, {____})