Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære KNeighborsClassifier | Modellering
Introduksjon til maskinlæring med Python

KNeighborsClassifier

Sveip for å vise menyen

Når den endelige estimatoren opprettes i en pipeline, ble den valgte modellen KNeighborsClassifier. Dette kapittelet gir en kort forklaring på hvordan algoritmen fungerer.

Note
Merk

Hvordan modeller fungerer er ikke hovedtemaet i dette kurset, så det er greit om noe virker uklart. Dette forklares mer detaljert i andre kurs som Linear Regression with Python eller Classification with Python.

k-Nearest Neighbors

k-NN forutsier klassen til en ny instans ved å se på dens k mest like treningsprøver. KNeighborsClassifier implementerer dette i Scikit-learn.

  1. For et nytt punkt, finn de k nærmeste naboene ved hjelp av likhet i egenskaper.
  2. Den mest vanlige klassen blant disse blir prediksjonen.

k er en hyperparameter (standard = 5). Ulike verdier endrer modellens oppførsel, så justering av k er viktig.

KNeighborsClassifier under .fit()

I motsetning til mange algoritmer, lagrer KNeighborsClassifier kun treningsdataene. Det er likevel nødvendig å kalle .fit(X, y) slik at modellen vet hvilket datasett den skal referere til under prediksjon.

kNNfit

KNeighborsClassifier under .predict()

Under prediksjon søker klassifiseringen etter k nærmeste naboer for hver forekomst. I det visuelle eksempelet vises kun to funksjoner; å legge til flere funksjoner forbedrer vanligvis klasseseparasjon og prediksjonsnøyaktighet.

kNNpredict
Note
Merk

I gifene ovenfor brukes kun to egenskaper, 'body_mass_g' og 'culmen_depth_mm', fordi det er utfordrende å visualisere plott med høyere dimensjoner. Å inkludere flere egenskaper vil sannsynligvis hjelpe modellen med å skille bedre mellom de grønne og røde datapunktene, noe som gjør at KNeighborsClassifier kan gi mer nøyaktige prediksjoner.

KNeighborsClassifier kodeeksempel

Du kan opprette en klassifiserer, trene den og sjekke nøyaktighet ved å bruke .score(). Argumentet n_neighbors styrer k—prøv både 5 og 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))

Å bruke k=1 kan gi perfekt nøyaktighet, men dette er misvisende fordi evalueringen ble utført på treningssettet. For å måle reell ytelse, test alltid modellen på usett data.

question mark

Hvordan gjør KNeighborsClassifier prediksjoner for en ny forekomst?

Velg det helt riktige svaret

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 2

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Seksjon 4. Kapittel 2
some-alt