Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer K-NN met Meerdere Kenmerken | K-NN-Classificator
Classificatie met Python

K-NN met Meerdere Kenmerken

Veeg om het menu te tonen

Je begrijpt nu hoe k-NN werkt met één enkele feature. Laten we doorgaan naar een iets complexer voorbeeld dat twee features gebruikt: gewicht en breedte.

In dit geval moeten we buren vinden op basis van zowel breedte als gewicht. Maar daar zit een klein probleem. Laten we de snoepjes plotten en bekijken wat er misgaat:

TwoFeatureNN1

Je ziet dat het gewicht varieert van 12 tot 64, terwijl de breedte slechts tussen 5 en 12 ligt. Omdat het bereik van de breedte veel kleiner is, lijken de snoepjes bijna verticaal uitgelijnd. Als we nu de afstanden berekenen, zullen deze vooral de verschillen in gewicht weergeven, alsof we de breedte nooit hebben meegenomen.

Er is echter een oplossing - het schalen van de data.

TwoFeatureNNScaled

Nu zijn zowel gewicht als breedte op dezelfde schaal en gecentreerd rond nul. Dit kan worden bereikt met de StandardScaler-klasse van sklearn. StandardScaler trekt eenvoudigweg het gemiddelde van de steekproef af en deelt het resultaat vervolgens door de standaardafwijking van de steekproef:

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

StandardScaler centreert de gegevens rond nul. Hoewel centreren niet verplicht is voor k-NN en tot verwarring kan leiden, zoals "hoe kan gewicht negatief zijn", is het simpelweg een manier om gegevens aan een computer te presenteren. Sommige modellen vereisen centreren, dus het is aan te raden om standaard StandardScaler te gebruiken voor schalen.

In feite moet je de gegevens altijd schalen voordat je k-Nearest Neighbors gebruikt. Met de geschaalde gegevens kunnen we nu de buren vinden:

TwoFeatureNN

In het geval van twee kenmerken definieert k-NN een cirkelvormige buurt die het gewenste aantal buren bevat. Bij drie kenmerken wordt dit een bol. In hogere dimensies krijgt de buurt een complexere vorm die niet te visualiseren is, maar de onderliggende berekeningen blijven onveranderd.

question mark

Kies de juiste uitspraak.

Selecteer het correcte antwoord

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 3

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Sectie 1. Hoofdstuk 3
some-alt