Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære K-NN med Flere Funktioner | K-NN-Klassifikator
Klassifikation med Python

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:

TwoFeatureNN1

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.

ToFeatureNNScaled

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:

Xscaled=XxˉsX_{scaled} = \frac{X - \bar x}{s}

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:

TwoFeatureNN

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.

question mark

Vælg den korrekte påstand.

Vælg det korrekte svar

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 3

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Sektion 1. Kapitel 3
some-alt