Classificatiemetrics uitgediept
Confusion matrix, precision, recall, F1, ROC-AUC en PR-curve — de juiste metric kiezen.
Classificatiemetrics uitgediept is een gratis Leer AI met Python-les op CoddyKit. Dit is les 2 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Leer AI met Python. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Leer AI met Python bevat in totaal 4 lessen.
Nauwkeurigheid is niet genoeg
Nauwkeurigheid is het aandeel juiste voorspellingen, maar bij onevenwichtige gegevens kan dit misleidend zijn. Een model dat alleen de meerderheidklasse voorspelt, kan 99% scoren en toch nutteloos zijn voor de zeldzame klasse.
De verwarringsmatrix
De verwarringsmatrix verdeelt voorspellingen in terecht-positieven, vals-positieven, terecht-negatieven en vals-negatieven. Dit is de basis voor alle andere meetwaarden.
from sklearn.metrics import confusion_matrix
y_true = [0, 1, 1, 0, 1, 0]
y_pred = [0, 1, 0, 0, 1, 1]
print(confusion_matrix(y_true, y_pred))
# rows = actual, columns = predictedPrecisie
Precisie = TP / (TP + FP). Van alle items die als positief zijn voorspeld, hoeveel zijn dat ook echt? Een hoge precisie betekent weinig valse alarmen. Dit is belangrijk wanneer vals-positieven kostbaar zijn (bijvoorbeeld bij spamfilters).
from sklearn.metrics import precision_score
print(precision_score(y_true, y_pred))Recall
Recall = TP / (TP + FN). Van alle werkelijk positieve gevallen, hoeveel hebben we gevonden? Een hoge recall betekent weinig gemiste gevallen. Dit is belangrijk wanneer vals-negatieven kostbaar zijn (bijvoorbeeld bij onderzoek naar ziekten).
from sklearn.metrics import recall_score
print(recall_score(y_true, y_pred))F1-score
De F1-score is het harmonische gemiddelde van precisie en recall: 2 * P * R / (P + R). De score brengt beide in balans en is nuttig wanneer je één getal nodig hebt voor onevenwichtige gegevens.
from sklearn.metrics import f1_score, classification_report
print(f1_score(y_true, y_pred))
print(classification_report(y_true, y_pred))ROC-curve en AUC
De ROC-curve zet het percentage terecht-positieven uit tegen het percentage vals-positieven voor verschillende drempelwaarden. roc_auc_score vat de curve samen: 1.0 is perfect en 0.5 staat voor willekeurig raden.
from sklearn.metrics import roc_auc_score
# needs probability scores, not hard labels
proba = model.predict_proba(Xte)[:, 1]
print(roc_auc_score(yte, proba))Precisie-recallcurve
De PR-curve zet precisie uit tegen recall voor verschillende drempelwaarden. Deze curve is informatiever dan ROC bij sterk onevenwichtige klassen, omdat de nadruk op de positieve klasse ligt.
from sklearn.metrics import precision_recall_curve
prec, rec, thresh = precision_recall_curve(yte, proba)
# plot rec (x) vs prec (y) to see the tradeoffGemiddelde precisie
average_precision_score vat de PR-curve samen in één getal (het oppervlak onder de PR-curve). Dit is de voorkeursmaatstaf voor onevenwichtige binaire classificatie.
from sklearn.metrics import average_precision_score
print(average_precision_score(yte, proba))ROC AUC versus gemiddelde precisie
ROC AUC kan bij onevenwichtige gegevens te optimistisch lijken, omdat terecht-negatieven de overhand hebben. Gemiddelde precisie negeert terecht-negatieven en geeft de prestaties op de zeldzame positieve klasse eerlijker weer.
De juiste meetwaarde kiezen
Gebruik F1 of gemiddelde precisie voor onevenwichtige problemen. Gebruik ROC AUC voor de kwaliteit van rangordening bij gebalanceerde gegevens. Kies precisie wanneer valse alarmen schadelijk zijn en recall wanneer gemiste gevallen schadelijk zijn. Bepaal altijd eerst je prioriteit voordat je kiest.
Drempelwaarden afstellen
De meeste meetwaarden hangen af van de beslisdrempel (standaard 0.5). Door de drempel te verschuiven, ruil je precisie in voor recall, of andersom. Gebruik de PR-curve om een drempel te kiezen die aan je vereiste voor de toepassing voldoet.
import numpy as np
# pick threshold for at least 0.9 precision
idx = np.argmax(prec >= 0.9)
chosen = thresh[idx]
preds = (proba >= chosen).astype(int)Korte controle
Controleer je kennis van meetwaarden.
Samenvatting
Samenvatting: Begin met de confusion_matrix. Precisie bestraft valse alarmen, recall bestraft gemiste gevallen en F1 brengt beide in balans. roc_auc_score meet de kwaliteit van rangordening; average_precision_score en de PR-curve zijn beter voor onevenwichtige gegevens. Stel de drempel af op je prioriteiten.
Leer Python met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 53
- Lessen
- 225
Veelgestelde vragen
Is de les “Classificatiemetrics uitgediept” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Leer AI met Python, waaronder “Classificatiemetrics uitgediept”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Leer AI met Python bevat in totaal 4 lessen.
Wat leer ik in “Classificatiemetrics uitgediept”?
Confusion matrix, precision, recall, F1, ROC-AUC en PR-curve — de juiste metric kiezen. Je oefent met Leer AI met Python door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Leer AI met Python te beginnen?
Ervaring vooraf is niet nodig. Leer AI met Python op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.
Hoe lang duurt de les “Classificatiemetrics uitgediept”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Leer AI met Python?
Ja. Elke les over Leer AI met Python bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Strategieën voor cross-validation
- Classificatiemetrics uitgediept
- Grid search en random search
- Bayesiaanse optimalisatie met Optuna