K-NN med Flere Funktioner
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 ved hjælp af klassen StandardScaler fra sklearn. StandardScaler trækker blot prøvens gennemsnit fra og dividerer derefter resultatet med prøvens standardafvigelse:
StandardScaler centrerer data 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 anbefales at bruge StandardScaler som standard til skalering.
Faktisk bør data altid skaleres før brug af k-Nearest Neighbors. Når dataene er skaleret, kan vi nu finde naboerne:
Når der er to features, definerer k-NN et cirkulært nabolag indeholdende det ønskede antal naboer. Med tre features 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
Can you explain why scaling is important for k-NN?
What other scaling methods can be used besides StandardScaler?
How does k-NN work with more than two features?
Awesome!
Completion rate improved to 4.17
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 ved hjælp af klassen StandardScaler fra sklearn. StandardScaler trækker blot prøvens gennemsnit fra og dividerer derefter resultatet med prøvens standardafvigelse:
StandardScaler centrerer data 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 anbefales at bruge StandardScaler som standard til skalering.
Faktisk bør data altid skaleres før brug af k-Nearest Neighbors. Når dataene er skaleret, kan vi nu finde naboerne:
Når der er to features, definerer k-NN et cirkulært nabolag indeholdende det ønskede antal naboer. Med tre features 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!