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

bookKneighborsclassifier

Ved oprettelse af den endelige estimator i en pipeline blev den valgte model KNeighborsClassifier. Dette kapitel giver en kort forklaring på, hvordan algoritmen fungerer.

Note
Bemærk

Hvordan modeller fungerer, er ikke hovedemnet i dette kursus, så det er i orden, hvis noget virker uklart. Det forklares mere detaljeret i andre kurser som Linear Regression with Python eller Classification with Python.

k-Nærmeste Naboer

k-NN forudsiger klassen for en ny observation ved at se på dens k mest lignende træningsprøver. KNeighborsClassifier implementerer dette i Scikit-learn.

  1. For et nyt punkt findes de k nærmeste naboer ved hjælp af lighed i egenskaber.
  2. Den mest almindelige klasse blandt dem bliver forudsigelsen.

k er en hyperparameter (standard = 5). Forskellige værdier ændrer modellens adfærd, så justering af k er vigtig.

KNeighborsClassifier under .fit()

I modsætning til mange algoritmer gemmer KNeighborsClassifier blot træningsdataene. Det er dog nødvendigt at kalde .fit(X, y), så modellen ved, hvilket datasæt der skal refereres til under forudsigelse.

KNeighborsClassifier under .predict()

Under forudsigelse søger klassifikatoren efter hver instans’ k nærmeste naboer. I det visuelle eksempel vises kun to features; tilføjelse af flere features forbedrer normalt klasseseparation og forudsigelsesnøjagtighed.

Note
Bemærk

I gifs ovenfor bruges kun to features, 'body_mass_g' og 'culmen_depth_mm', fordi det er udfordrende at visualisere højdimensionelle plots. Inkludering af yderligere features vil sandsynligvis hjælpe modellen med bedre at adskille de grønne og røde datapunkter, hvilket gør det muligt for KNeighborsClassifier at lave mere præcise forudsigelser.

KNeighborsClassifier kodeeksempel

Du kan oprette en klassifikator, træne den og kontrollere dens nøjagtighed ved hjælp af .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))
copy

Brug af k=1 kan give perfekt nøjagtighed, men dette er misvisende, fordi evalueringen blev udført på træningssættet. For at måle reel ydeevne skal modellen altid testes på usete data.

question mark

Hvordan foretager KNeighborsClassifier forudsigelser for en ny forekomst?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 2

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

bookKneighborsclassifier

Stryg for at vise menuen

Ved oprettelse af den endelige estimator i en pipeline blev den valgte model KNeighborsClassifier. Dette kapitel giver en kort forklaring på, hvordan algoritmen fungerer.

Note
Bemærk

Hvordan modeller fungerer, er ikke hovedemnet i dette kursus, så det er i orden, hvis noget virker uklart. Det forklares mere detaljeret i andre kurser som Linear Regression with Python eller Classification with Python.

k-Nærmeste Naboer

k-NN forudsiger klassen for en ny observation ved at se på dens k mest lignende træningsprøver. KNeighborsClassifier implementerer dette i Scikit-learn.

  1. For et nyt punkt findes de k nærmeste naboer ved hjælp af lighed i egenskaber.
  2. Den mest almindelige klasse blandt dem bliver forudsigelsen.

k er en hyperparameter (standard = 5). Forskellige værdier ændrer modellens adfærd, så justering af k er vigtig.

KNeighborsClassifier under .fit()

I modsætning til mange algoritmer gemmer KNeighborsClassifier blot træningsdataene. Det er dog nødvendigt at kalde .fit(X, y), så modellen ved, hvilket datasæt der skal refereres til under forudsigelse.

KNeighborsClassifier under .predict()

Under forudsigelse søger klassifikatoren efter hver instans’ k nærmeste naboer. I det visuelle eksempel vises kun to features; tilføjelse af flere features forbedrer normalt klasseseparation og forudsigelsesnøjagtighed.

Note
Bemærk

I gifs ovenfor bruges kun to features, 'body_mass_g' og 'culmen_depth_mm', fordi det er udfordrende at visualisere højdimensionelle plots. Inkludering af yderligere features vil sandsynligvis hjælpe modellen med bedre at adskille de grønne og røde datapunkter, hvilket gør det muligt for KNeighborsClassifier at lave mere præcise forudsigelser.

KNeighborsClassifier kodeeksempel

Du kan oprette en klassifikator, træne den og kontrollere dens nøjagtighed ved hjælp af .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))
copy

Brug af k=1 kan give perfekt nøjagtighed, men dette er misvisende, fordi evalueringen blev udført på træningssættet. For at måle reel ydeevne skal modellen altid testes på usete data.

question mark

Hvordan foretager KNeighborsClassifier forudsigelser for en ny forekomst?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 2
some-alt