Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer KNeighborsClassifier | Modellering
Introductie tot Machine Learning met Python

KNeighborsClassifier

Veeg om het menu te tonen

Bij het aanmaken van de uiteindelijke estimator in een pipeline is het gekozen 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 is. Dit wordt uitgebreider uitgelegd in andere cursussen zoals Linear Regression with Python of Classification with Python.

k-Nearest Neighbors

k-NN voorspelt de klasse van een nieuw voorbeeld door te kijken naar de k meest vergelijkbare trainingsvoorbeelden. KNeighborsClassifier implementeert dit in Scikit-learn.

  1. Voor een nieuw punt worden de k dichtstbijzijnde buren gevonden op basis van gelijkenis in kenmerken.
  2. De meest voorkomende klasse onder deze buren wordt de voorspelling.

k is een hyperparameter (standaard = 5). Verschillende waarden veranderen het gedrag van het model, dus het afstemmen van k is belangrijk.

KNeighborsClassifier tijdens .fit()

In tegenstelling tot veel algoritmen slaat KNeighborsClassifier de trainingsgegevens alleen op. Toch is het aanroepen van .fit(X, y) vereist zodat het model weet naar welke dataset verwezen moet worden tijdens het voorspellen.

kNNfit

KNeighborsClassifier tijdens .predict()

Tijdens het voorspellen zoekt de classifier voor elk geval naar de k dichtstbijzijnde buren. In het visuele voorbeeld worden slechts twee kenmerken getoond; het toevoegen van meer kenmerken verbetert meestal de klassenonderscheiding en de nauwkeurigheid van de voorspelling.

kNNpredict
Note
Opmerking

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

KNeighborsClassifier codevoorbeeld

Een classifier aanmaken, trainen en de nauwkeurigheid controleren met .score(). Het argument n_neighbors bepaalt k—probeer zowel 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))

Het gebruik van k=1 kan een perfecte nauwkeurigheid opleveren, maar dit is misleidend omdat de evaluatie is uitgevoerd op de trainingset. Om de werkelijke prestaties te meten, test het model altijd op onbekende data.

question mark

Hoe voorspelt de KNeighborsClassifier een nieuwe instantie?

Selecteer het correcte antwoord

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.

Sectie 4. Hoofdstuk 2
some-alt