Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer KNeighborsClassifier | Modelleren
ML-Introductie met Scikit-learn

bookKNeighborsClassifier

Bij het creëren van de uiteindelijke estimator in een pipeline is gekozen voor het model KNeighborsClassifier. Dit hoofdstuk geeft een korte uitleg over hoe het algoritme werkt.

Note
Opmerking

Hoe modellen werken is geen hoofdonderwerp van deze cursus, dus het is niet erg als iets onduidelijk voor je is. Dit wordt uitgebreider uitgelegd in andere cursussen zoals Linear Regression with Python of Classification with Python.

k-Nearest Neighbors

k-nearest neighbors (k-NN) is een machine learning-algoritme dat uitkomsten voorspelt door de meest vergelijkbare voorbeelden in de trainingsset te identificeren.

KNeighborsClassifier is de Scikit-learn-implementatie van dit algoritme voor classificatietaken. Het voorspellingsproces werkt als volgt:

  1. Voor een nieuw voorbeeld worden de k dichtstbijzijnde trainingsvoorbeelden geïdentificeerd op basis van gelijkenis in kenmerken. Deze worden de buren genoemd.
  2. Bepaal de meest voorkomende klasse onder de k buren. Die klasse wordt de voorspelling voor het nieuwe voorbeeld.

De parameter k geeft het aantal te beschouwen buren aan. Standaard is deze ingesteld op 5. Verschillende waarden van k kunnen tot verschillende voorspellingen leiden, waardoor het een hyperparameter is — een parameter die vóór de training wordt gekozen en direct het gedrag van het model beïnvloedt.

Experimenteren met verschillende waarden van k en het selecteren van de waarde die de beste prestaties oplevert, wordt hyperparameter tuning genoemd. Dit proces is essentieel voor het optimaliseren van het model.

KNeighborsClassifier tijdens .fit()

In tegenstelling tot de meeste ML-modellen doet de KNeighborsClassifier niets anders dan de trainingsset opslaan tijdens het trainen. Hoewel het trainen geen tijd kost, is het aanroepen van .fit(X, y) verplicht zodat het model de trainingsset kan onthouden.

KNeighborsClassifier tijdens .predict()

Tijdens het voorspellen zoekt de KNeighborsClassifier op een gulzige manier de k dichtstbijzijnde buren voor elk nieuw voorbeeld.

Note
Opmerking

In de bovenstaande gifs worden slechts twee features, 'body_mass_g' en 'culmen_depth_mm', gebruikt omdat het visualiseren van plots met meer dimensies lastig is. Het toevoegen van extra features zal het model waarschijnlijk helpen om de groene en rode datapunten beter te scheiden, waardoor de KNeighborsClassifier nauwkeurigere voorspellingen kan doen.

KNeighborsClassifier Codevoorbeeld

Maak een KNeighborsClassifier aan, train deze en evalueer de nauwkeurigheid met de .score()-methode. De dataset in het .csv-bestand is al voorbewerkt.

Het aantal buren (k) wordt opgegeven met het argument n_neighbors bij het initialiseren van KNeighborsClassifier. Probeer zowel de standaardwaarde 5 als 1.

12345678910111213
import pandas as pd from sklearn.neighbors import KNeighborsClassifier df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_pipelined.csv') # Assign X, y variables (X is already preprocessed and y is already encoded) X, y = df.drop('species', axis=1), df['species'] # Initialize and train a model knn5 = KNeighborsClassifier().fit(X, y) # Trained 5 neighbors model knn1 = KNeighborsClassifier(n_neighbors=1).fit(X, y) # Trained 1 neighbor model # Print the scores of both models print('5 Neighbors score:',knn5.score(X, y)) print('1 Neighbor score:',knn1.score(X, y))
copy

De resultaten tonen een hoge nauwkeurigheid, zelfs perfect bij 1-naaste buur.

Deze scores zijn echter niet betrouwbaar omdat de evaluatie is uitgevoerd op de trainingsset—dezelfde data waarop het model is getraind. In dit geval voorspelt het model simpelweg voorbeelden die het al heeft gezien.

Om de prestaties correct te beoordelen, moet het model worden geëvalueerd op data die het niet eerder heeft gezien.

question mark

Hoe maakt de KNeighborsClassifier voorspellingen voor een nieuw exemplaar?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 2

Vraag AI

expand

Vraag AI

ChatGPT

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

Awesome!

Completion rate improved to 3.13

bookKNeighborsClassifier

Veeg om het menu te tonen

Bij het creëren van de uiteindelijke estimator in een pipeline is gekozen voor het model KNeighborsClassifier. Dit hoofdstuk geeft een korte uitleg over hoe het algoritme werkt.

Note
Opmerking

Hoe modellen werken is geen hoofdonderwerp van deze cursus, dus het is niet erg als iets onduidelijk voor je is. Dit wordt uitgebreider uitgelegd in andere cursussen zoals Linear Regression with Python of Classification with Python.

k-Nearest Neighbors

k-nearest neighbors (k-NN) is een machine learning-algoritme dat uitkomsten voorspelt door de meest vergelijkbare voorbeelden in de trainingsset te identificeren.

KNeighborsClassifier is de Scikit-learn-implementatie van dit algoritme voor classificatietaken. Het voorspellingsproces werkt als volgt:

  1. Voor een nieuw voorbeeld worden de k dichtstbijzijnde trainingsvoorbeelden geïdentificeerd op basis van gelijkenis in kenmerken. Deze worden de buren genoemd.
  2. Bepaal de meest voorkomende klasse onder de k buren. Die klasse wordt de voorspelling voor het nieuwe voorbeeld.

De parameter k geeft het aantal te beschouwen buren aan. Standaard is deze ingesteld op 5. Verschillende waarden van k kunnen tot verschillende voorspellingen leiden, waardoor het een hyperparameter is — een parameter die vóór de training wordt gekozen en direct het gedrag van het model beïnvloedt.

Experimenteren met verschillende waarden van k en het selecteren van de waarde die de beste prestaties oplevert, wordt hyperparameter tuning genoemd. Dit proces is essentieel voor het optimaliseren van het model.

KNeighborsClassifier tijdens .fit()

In tegenstelling tot de meeste ML-modellen doet de KNeighborsClassifier niets anders dan de trainingsset opslaan tijdens het trainen. Hoewel het trainen geen tijd kost, is het aanroepen van .fit(X, y) verplicht zodat het model de trainingsset kan onthouden.

KNeighborsClassifier tijdens .predict()

Tijdens het voorspellen zoekt de KNeighborsClassifier op een gulzige manier de k dichtstbijzijnde buren voor elk nieuw voorbeeld.

Note
Opmerking

In de bovenstaande gifs worden slechts twee features, 'body_mass_g' en 'culmen_depth_mm', gebruikt omdat het visualiseren van plots met meer dimensies lastig is. Het toevoegen van extra features zal het model waarschijnlijk helpen om de groene en rode datapunten beter te scheiden, waardoor de KNeighborsClassifier nauwkeurigere voorspellingen kan doen.

KNeighborsClassifier Codevoorbeeld

Maak een KNeighborsClassifier aan, train deze en evalueer de nauwkeurigheid met de .score()-methode. De dataset in het .csv-bestand is al voorbewerkt.

Het aantal buren (k) wordt opgegeven met het argument n_neighbors bij het initialiseren van KNeighborsClassifier. Probeer zowel de standaardwaarde 5 als 1.

12345678910111213
import pandas as pd from sklearn.neighbors import KNeighborsClassifier df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_pipelined.csv') # Assign X, y variables (X is already preprocessed and y is already encoded) X, y = df.drop('species', axis=1), df['species'] # Initialize and train a model knn5 = KNeighborsClassifier().fit(X, y) # Trained 5 neighbors model knn1 = KNeighborsClassifier(n_neighbors=1).fit(X, y) # Trained 1 neighbor model # Print the scores of both models print('5 Neighbors score:',knn5.score(X, y)) print('1 Neighbor score:',knn1.score(X, y))
copy

De resultaten tonen een hoge nauwkeurigheid, zelfs perfect bij 1-naaste buur.

Deze scores zijn echter niet betrouwbaar omdat de evaluatie is uitgevoerd op de trainingsset—dezelfde data waarop het model is getraind. In dit geval voorspelt het model simpelweg voorbeelden die het al heeft gezien.

Om de prestaties correct te beoordelen, moet het model worden geëvalueerd op data die het niet eerder heeft gezien.

question mark

Hoe maakt de KNeighborsClassifier voorspellingen voor een nieuw exemplaar?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 2
some-alt