Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära K-nn med flera funktioner | K-NN-Klassificerare
Klassificering med Python

K-nn med flera funktioner

Svep för att visa menyn

Du förstår nu hur k-NN fungerar med en enskild egenskap. Låt oss gå vidare till ett något mer komplext exempel som använder två egenskaper: weight och width.

I detta fall behöver vi hitta grannar baserat på både width och weight. Men det finns ett litet problem med det. Låt oss plotta godisarna och se vad som går fel:

TwoFeatureNN1

Du kan se att weight varierar från 12 till 64, medan width bara är mellan 5 och 12. Eftersom width har ett mycket mindre intervall verkar godisarna nästan vertikalt uppradade. Om vi nu beräknar avstånd kommer de främst att spegla skillnader i weight, som om vi aldrig tog hänsyn till width.

Det finns dock en lösning – skala datan.

TwoFeatureNNScaled

Nu är både vikt och bredd på samma skala och centrerade kring noll. Detta kan uppnås med klassen StandardScaler från sklearn. StandardScaler subtraherar helt enkelt provets medelvärde och dividerar sedan resultatet med provets standardavvikelse:

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

StandardScaler centrerar data kring noll. Även om centrering inte är obligatoriskt för k-NN och kan skapa förvirring, till exempel "hur kan vikt vara negativ", är det bara ett sätt att presentera data för en dator. Vissa modeller kräver centrering, så det är rekommenderat att använda StandardScaler som standard för skalning.

Faktum är att du alltid bör skala data innan du använder k-Nearest Neighbors. Med den skalade datan kan vi nu hitta grannarna:

TwoFeatureNN

Vid två egenskaper definierar k-NN ett cirkulärt grannskap som innehåller önskat antal grannar. Med tre egenskaper blir detta en sfär. I högre dimensioner antar grannskapet en mer komplex form som inte kan visualiseras, men de underliggande beräkningarna förblir oförändrade.

question mark

Välj det korrekta påståendet.

Vänligen välj det korrekta svaret

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 3

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Avsnitt 1. Kapitel 3
some-alt