Hoppa till innehållet
AI-grafen
DAI-utvecklareLaboration· ca 45 min· sandlåda på servern

Labb: k-närmaste grannar från grunden

Implementera kNN med euklidiskt avstånd och majoritetsröst, mäta accuracy på sklearn digits och se hur k påverkar.

Teori

Ingen träning: för en ny punkt, hitta de k närmaste träningspunkterna och rösta. Avståndet avgör allt — därför spelar skalning roll.

Deluppgifter

  1. avstånd — distances(x, X) — euklidiskt avstånd från x till varje rad i X (vektoriserat).
  2. predict — predict(Xtr, ytr, X, k) — majoritetsröst bland k närmaste (vid lika: minsta etikett).

Godkänt när: accuracy >= 0.95

Startkoden

körs i en isolerad sandlåda på servern
import numpy as np


def distances(x, X):
    # TODO: sqrt(sum((X - x)^2, axis=1))
    ...


def predict(Xtr, ytr, X, k=3):
    # TODO: för varje rad i X: k närmaste index (argsort), majoritetsröst via np.bincount
    ...

Du skriver koden, tester du inte ser avgör om den håller. Skapa ett gratis konto för att köra labben.

Prova diagnosenSkapa konto gratis

Förväntade resultat

Accuracy ≥ 0,95 på digits med k = 3 (typiskt ≈ 0,98).

Vanliga fel

  • Glömmer roten ur (fungerar ändå för rangordning, men testet kräver riktigt avstånd).
  • Räknar med testpunkten själv när Xtr == X.
  • Lika röster hanteras inkonsekvent.