Hoppa till innehållet
AI-grafen
D· AI-utvecklareklassisk-ml· ca 45 min· grundläggande — ändras sällan· verifierad 2026-09-20

Precision, recall, F1 och ROC

Kunna välja rätt mått, läsa förväxlingsmatris och ROC-kurva.

Förkunskaper

Intuition

Träffsäkerhet ljuger vid obalanserade klasser: 1 % sjuka → «alla friska» ger 99 %.

Förväxlingsmatris: TP (rätt positiv), FP (falskt alarm), FN (missad), TN.

  • Precision = TP / (TP + FP): av dem vi larmade om, hur många var rätt?
  • Recall = TP / (TP + FN): av alla sjuka, hur många hittade vi?
  • F1 = harmoniskt medel av de två.

Cancerscreening: missa ingen → hög recall. Spamfilter: kasta inte viktig post → hög precision. Måttet ska följa kostnaden för felet.

Kod

from sklearn.metrics import confusion_matrix, precision_score, recall_score, f1_score, roc_auc_score

y_true = [1, 1, 1, 1, 0, 0, 0, 0, 0, 0]
y_pred = [1, 1, 1, 0, 1, 0, 0, 0, 0, 0]
print(confusion_matrix(y_true, y_pred))    # [[5 1] [1 3]] → TN=5 FP=1 FN=1 TP=3
print(precision_score(y_true, y_pred))     # 0.75
print(recall_score(y_true, y_pred))        # 0.75
print(f1_score(y_true, y_pred))            # 0.75

p = [0.9, 0.8, 0.7, 0.4, 0.6, 0.3, 0.2, 0.1, 0.05, 0.35]   # sannolikheter
print(roc_auc_score(y_true, p))            # 0.83 — oberoende av tröskel

ROC-kurvan ritar recall mot falsk-positiv-andel för alla trösklar. AUC = 0,5 är slump, 1,0 perfekt. Vid stark obalans: titta hellre på precision–recall-kurvan.

Behärskning innebär

  • Räknar precision, recall och F1 ur en förväxlingsmatris
  • Väljer mått efter kostnaden för olika fel
  • Läser en ROC-kurva och AUC

Logga in för att göra övningarna och bygga upp din behärskning.

Källor

Alla källor och licenser