D· AI-utvecklareLaboration· ca 45 min· container
Labb: k-means från grunden
Implementera k-means (tilldela, uppdatera, upprepa), visa att tröghetsmåttet aldrig ökar, och hitta kluster i syntetisk data.
Lär ut: klustring · Kräver: vektorerstatistik-medelvarde-spridning
Teori
Upprepa: tilldela varje punkt till närmaste centroid; flytta varje centroid till medelvärdet av sina punkter. Trögheten (summa kvadratavstånd) minskar monotont.
Deluppgifter
- assign — `assign(X, C)` → index till närmaste centroid per rad.
- update — `update(X, labels, k)` → nya centroider (tomt kluster behåller gamla via NaN-hantering: använd X-medel).
- kmeans — `kmeans(X, k, steps, seed)` → (C, labels, inertia_history).
Evals: blobs-inertia (inertia <= 250)
Logga in för att köra laborationen.
Förväntade resultat
Trögheten minskar monotont; på tre tydliga blobbar hittas rätt kluster (tröghet < 250).
Vanliga fel
- Byter axel i avståndsberäkningen.
- Tomt kluster ger NaN-centroid.
- Initierar centroider utanför datan.