CByggareProjekt· ca 90 min· i webbläsaren
Projekt 1: Lär en dator känna igen mönster
Bygga en klassificerare av frukter från två mått (vikt, färgvärde) helt för hand: features, avstånd, närmaste granne, träffsäkerhet och felanalys.
Teori
Varje frukt är en punkt (vikt, färg). En ny frukt får samma etikett som sin närmaste granne. Träffsäkerhet mäts på frukter modellen inte sett — och de fel den gör säger mer än siffran.
Deluppgifter
- features —
features(frukt)→ [vikt, farg] som tal ur en dict. - avstånd och närmaste —
avstand(a, b)(euklidiskt) ochnarmaste(punkt, traning)→ etiketten för närmaste träningsfrukt. - träffsäkerhet —
traffsakerhet(traning, test)→ andel rätt. - felanalys —
felanalys(traning, test)→ dict {(rätt, gissat): antal} för felen — vilka frukter blandas ihop?
Godkänt när: accuracy >= 0.8
Startkoden
körs i din webbläsarefrom data import TRANING, TEST
def features(frukt):
# TODO: [frukt["vikt"], frukt["farg"]]
...
def avstand(a, b):
# TODO: euklidiskt avstånd mellan två featurelistor
...
def narmaste(punkt, traning):
# TODO: etiketten hos den träningsfrukt vars features ligger närmast punkt
...
def traffsakerhet(traning, test):
# TODO: andel av test där narmaste(features(f), traning) == f["etikett"]
...
def felanalys(traning, test):
# TODO: dict {(ratt, gissat): antal} bara för felen
...
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 gratisFörväntade resultat
Träffsäkerhet ≥ 0,8 på testfrukterna; felanalysen visar att äpple och päron blandas ihop oftast (de liknar varandra i vikt).
Vanliga fel
- Jämför färg (0–1) och vikt (gram) utan att tänka på skalan — vikten dominerar avståndet. Testa att skala!
- Räknar in testfrukten själv bland grannarna.