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

Visualisering med Matplotlib

Kunna rita linje-, spridnings- och histogramdiagram och läsa av träningskurvor.

Förkunskaper

Intuition

Välj diagram efter frågan, inte efter vad som ser snyggt ut:

FråganDiagram
Hur ändras något över tid?linjediagram
Hänger två variabler ihop?spridningsdiagram
Hur är värdena fördelade?histogram
Hur skiljer sig grupperna?lådagram eller stapeldiagram
Var är felen?förväxlingsmatris som värmekarta

Fyra regler som gör diagram läsbara:

  1. Märk axlarna, med enhet.
  2. Nollbasera stapeldiagram — annars överdrivs skillnader. Linjediagram får zoomas.
  3. Rita alltid ut datan när underlaget är litet, inte bara medelvärden.
  4. Använd inte färg som enda skillnad — cirka 8 % av män har någon form av färgblindhet. Lägg till olika linjestilar eller markörer.

Kod

import matplotlib
matplotlib.use("Agg")               # rita till fil utan skärm — behövs på en server
import matplotlib.pyplot as plt
import numpy as np

rng = np.random.default_rng(0)
epoker = np.arange(1, 41)
train = 1.2 * np.exp(-epoker / 12) + 0.05
val = 1.2 * np.exp(-epoker / 12) + 0.05 + np.maximum(0, (epoker - 18) * 0.006)

fig, ax = plt.subplots(1, 3, figsize=(13, 3.6))

# 1. Träningskurva — den viktigaste bilden i hela ML
ax[0].plot(epoker, train, label="träning", linestyle="-")
ax[0].plot(epoker, val, label="validering", linestyle="--")
ax[0].axvline(int(epoker[np.argmin(val)]), color="gray", linestyle=":",
              label="bästa epok")
ax[0].set(xlabel="epok", ylabel="förlust", title="Träningskurva")
ax[0].legend()

# 2. Spridning — hänger x och y ihop?
x = rng.normal(size=200)
y = 0.7 * x + rng.normal(scale=0.6, size=200)
ax[1].scatter(x, y, s=12, alpha=0.6)
ax[1].set(xlabel="feature", ylabel="målvariabel", title=f"r = {np.corrcoef(x, y)[0,1]:.2f}")

# 3. Histogram — hur ser fördelningen ut?
ax[2].hist(rng.gamma(2.0, 2.0, size=1000), bins=30)
ax[2].set(xlabel="värde", ylabel="antal", title="Fördelning (högersvansad)")

fig.tight_layout()
fig.savefig("figur.png", dpi=120)

Att läsa en träningskurva — fyra mönster och vad de betyder:

MönsterDiagnosÅtgärd
Båda faller och planar ut ihopsuntklart
Träning faller, validering vänder uppåtöveranpassningtidigt stopp, mer data, regularisering
Båda planar ut högtunderanpassningstörre modell, längre träning, bättre features
Kurvan hoppar viltför hög lärhastighet eller för liten batchsänk lr, öka batch

Den andra raden är den vanligaste. Punkten där valideringskurvan vänder är den epok du ska spara modellen från — allt därefter är att lära sig träningsdatan utantill.

Behärskning innebär

  • Ritar de vanliga diagramtyperna
  • Läser av en träningskurva
  • Väljer diagramtyp efter frågan

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

Källor

Alla källor och licenser