K-NN med Flere Funktioner
Stryg for at vise menuen
Du forstår nu, hvordan k-NN fungerer med én enkelt feature. Lad os gå videre til et lidt mere komplekst eksempel, der bruger to features: vægt og bredde.
I dette tilfælde skal vi finde naboer baseret på både bredde og vægt. Men der er et lille problem med det. Lad os plotte slikkerne og se, hvad der går galt:
Du kan se, at vægten varierer fra 12 til 64, mens bredden kun ligger mellem 5 og 12. Da breddens interval er meget mindre, ser slikkerne næsten lodret opstillet ud. Hvis vi nu beregner afstande, vil de primært afspejle forskelle i vægt, som om vi aldrig tog højde for bredden.
Der er dog en løsning – skalering af dataene.
Nu er både vægt og bredde på samme skala og centreret omkring nul. Dette kan opnås med StandardScaler-klassen fra sklearn. StandardScaler trækker blot prøvens gennemsnit fra og dividerer derefter resultatet med prøvens standardafvigelse:
StandardScaler centrerer dataene omkring nul. Selvom centrering ikke er påkrævet for k-NN og kan føre til forvirring, såsom "hvordan kan vægt være negativ", er det blot en måde at præsentere data for en computer på. Nogle modeller kræver centrering, så det er tilrådeligt at bruge StandardScaler som standard til skalering.
Faktisk bør du altid skalere dataene, før du bruger k-Nearest Neighbors. Når dataene er skaleret, kan vi nu finde naboerne:
I tilfælde af to funktioner definerer k-NN et cirkulært nabolag, der indeholder det ønskede antal naboer. Med tre funktioner bliver dette til en sfære. I højere dimensioner antager nabolaget en mere kompleks form, som ikke kan visualiseres, men de underliggende beregninger forbliver uændrede.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat