K-NN met Meerdere Kenmerken
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 zien wat er misgaat:
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 voornamelijk de verschillen in gewicht weergeven, alsof we de breedte nooit hebben meegenomen.
Er is echter een oplossing - het schalen van de data.
Nu staan zowel gewicht als breedte op dezelfde schaal en zijn ze gecentreerd rond nul. Dit kan worden bereikt met de StandardScaler-klasse uit sklearn. StandardScaler trekt gewoon het gemiddelde van de steekproef af en deelt het resultaat vervolgens door de standaardafwijking van de steekproef:
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 centrering, dus het is raadzaam om standaard StandardScaler te gebruiken voor schalen.
In feite moet u de gegevens altijd schalen voordat u k-Nearest Neighbors gebruikt. Met geschaalde gegevens kunnen we nu de buren vinden:
In het geval van twee kenmerken definieert k-NN een cirkelvormige buurt die het gewenste aantal buren bevat. Met 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 hetzelfde.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
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 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 zien wat er misgaat:
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 voornamelijk de verschillen in gewicht weergeven, alsof we de breedte nooit hebben meegenomen.
Er is echter een oplossing - het schalen van de data.
Nu staan zowel gewicht als breedte op dezelfde schaal en zijn ze gecentreerd rond nul. Dit kan worden bereikt met de StandardScaler-klasse uit sklearn. StandardScaler trekt gewoon het gemiddelde van de steekproef af en deelt het resultaat vervolgens door de standaardafwijking van de steekproef:
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 centrering, dus het is raadzaam om standaard StandardScaler te gebruiken voor schalen.
In feite moet u de gegevens altijd schalen voordat u k-Nearest Neighbors gebruikt. Met geschaalde gegevens kunnen we nu de buren vinden:
In het geval van twee kenmerken definieert k-NN een cirkelvormige buurt die het gewenste aantal buren bevat. Met 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 hetzelfde.
Bedankt voor je feedback!