K-NN med Flera Funktioner
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:
Du kan se att weight varierar från 12 till 64, medan width endast ligger mellan 5 och 12. Eftersom width har ett mycket mindre intervall verkar godisarna nästan vara vertikalt uppradade. Om vi nu beräknar avstånd kommer de främst att återspegla skillnader i weight, som om vi aldrig tog hänsyn till width.
Det finns dock en lösning – skala datan.
Nu är både weight och width på samma skala och centrerade kring noll. Detta kan uppnås med klassen StandardScaler från sklearn. StandardScaler subtraherar helt enkelt medelvärdet för urvalet och dividerar sedan resultatet med standardavvikelsen för urvalet:
StandardScaler centrerar data kring noll. Även om centrering inte är obligatoriskt för k-NN och kan leda till förvirring, såsom "hur kan vikt vara negativ", är det helt enkelt ett sätt att presentera data för en dator. Vissa modeller kräver centrering, så det är lämpligt 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:
När det gäller 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.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
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 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:
Du kan se att weight varierar från 12 till 64, medan width endast ligger mellan 5 och 12. Eftersom width har ett mycket mindre intervall verkar godisarna nästan vara vertikalt uppradade. Om vi nu beräknar avstånd kommer de främst att återspegla skillnader i weight, som om vi aldrig tog hänsyn till width.
Det finns dock en lösning – skala datan.
Nu är både weight och width på samma skala och centrerade kring noll. Detta kan uppnås med klassen StandardScaler från sklearn. StandardScaler subtraherar helt enkelt medelvärdet för urvalet och dividerar sedan resultatet med standardavvikelsen för urvalet:
StandardScaler centrerar data kring noll. Även om centrering inte är obligatoriskt för k-NN och kan leda till förvirring, såsom "hur kan vikt vara negativ", är det helt enkelt ett sätt att presentera data för en dator. Vissa modeller kräver centrering, så det är lämpligt 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:
När det gäller 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.
Tack för dina kommentarer!