Leer AI met Python · Les

Classificatiemetrics uitgediept

Confusion matrix, precision, recall, F1, ROC-AUC en PR-curve — de juiste metric kiezen.

Les 2 van 413 stappen

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 = predicted

Precisie

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 tradeoff

Gemiddelde 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.

Gratis beginnen

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

  1. Strategieën voor cross-validation
  2. Classificatiemetrics uitgediept
  3. Grid search en random search
  4. Bayesiaanse optimalisatie met Optuna
← Terug naar Leer AI met Python