Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære KNeighborsClassifier | Modellering
ML Introduktion med Scikit-learn

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 for dig. Det forklares mere detaljeret i andre kurser som Linear Regression with Python eller Classification with Python.

k-Nearest Neighbors

k-nearest neighbors (k-NN) er en maskinlæringsalgoritme, der forudsiger resultater ved at identificere de mest lignende eksempler i træningssættet.

KNeighborsClassifier er Scikit-learns implementering af denne algoritme til klassifikationsopgaver. Forudsigelsesprocessen fungerer således:

  1. For en ny observation identificeres de k nærmeste træningseksempler baseret på lighed i egenskaber. Disse kaldes naboer.
  2. Den mest hyppige klasse blandt de k naboer bestemmes. Denne klasse bliver forudsigelsen for den nye observation.

Parameteren k angiver, hvor mange naboer der skal tages i betragtning. Som standard er den sat til 5. Forskellige værdier af k kan føre til forskellige forudsigelser, hvilket gør det til en hyperparameter — en parameter, der vælges før træning og direkte påvirker modellens adfærd.

At eksperimentere med forskellige værdier af k og vælge den, der giver den bedste ydeevne, kaldes hyperparametertuning. Denne proces er afgørende for at optimere modellen.

KNeighborsClassifier under .fit()

I modsætning til de fleste ML-modeller gør KNeighborsClassifier intet andet end at gemme træningssættet under træning. Selvom træningen derfor ikke tager tid, er det obligatorisk at kalde .fit(X, y) for at modellen kan huske træningssættet.

KNeighborsClassifier under .predict()

Ved forudsigelse finder KNeighborsClassifier grådigt de k nærmeste naboer for hver ny instans.

Note
Bemærk

I animationerne ovenfor anvendes kun to features, 'body_mass_g' og 'culmen_depth_mm', fordi det er udfordrende at visualisere plots med højere dimensioner. 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 Kodningseksempel

Opret en KNeighborsClassifier, træn den, og evaluer dens nøjagtighed ved hjælp af .score()-metoden. Datasættet i .csv-filen er allerede forbehandlet.

Antallet af naboer (k) angives med argumentet n_neighbors, når KNeighborsClassifier initialiseres. Prøv både standardværdien 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

Resultaterne viser høj nøjagtighed, endda perfekt med 1-nærmeste nabo.

Disse scorer er dog ikke pålidelige, da evalueringen blev udført på træningssættet—de samme data, som modellen blev trænet på. I dette tilfælde forudsiger modellen blot eksempler, den allerede har set.

For at vurdere ydeevnen korrekt skal modellen evalueres på data, den ikke tidligere har set.

question mark

Hvordan forudsiger KNeighborsClassifier 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

Awesome!

Completion rate improved to 3.13

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 for dig. Det forklares mere detaljeret i andre kurser som Linear Regression with Python eller Classification with Python.

k-Nearest Neighbors

k-nearest neighbors (k-NN) er en maskinlæringsalgoritme, der forudsiger resultater ved at identificere de mest lignende eksempler i træningssættet.

KNeighborsClassifier er Scikit-learns implementering af denne algoritme til klassifikationsopgaver. Forudsigelsesprocessen fungerer således:

  1. For en ny observation identificeres de k nærmeste træningseksempler baseret på lighed i egenskaber. Disse kaldes naboer.
  2. Den mest hyppige klasse blandt de k naboer bestemmes. Denne klasse bliver forudsigelsen for den nye observation.

Parameteren k angiver, hvor mange naboer der skal tages i betragtning. Som standard er den sat til 5. Forskellige værdier af k kan føre til forskellige forudsigelser, hvilket gør det til en hyperparameter — en parameter, der vælges før træning og direkte påvirker modellens adfærd.

At eksperimentere med forskellige værdier af k og vælge den, der giver den bedste ydeevne, kaldes hyperparametertuning. Denne proces er afgørende for at optimere modellen.

KNeighborsClassifier under .fit()

I modsætning til de fleste ML-modeller gør KNeighborsClassifier intet andet end at gemme træningssættet under træning. Selvom træningen derfor ikke tager tid, er det obligatorisk at kalde .fit(X, y) for at modellen kan huske træningssættet.

KNeighborsClassifier under .predict()

Ved forudsigelse finder KNeighborsClassifier grådigt de k nærmeste naboer for hver ny instans.

Note
Bemærk

I animationerne ovenfor anvendes kun to features, 'body_mass_g' og 'culmen_depth_mm', fordi det er udfordrende at visualisere plots med højere dimensioner. 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 Kodningseksempel

Opret en KNeighborsClassifier, træn den, og evaluer dens nøjagtighed ved hjælp af .score()-metoden. Datasættet i .csv-filen er allerede forbehandlet.

Antallet af naboer (k) angives med argumentet n_neighbors, når KNeighborsClassifier initialiseres. Prøv både standardværdien 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

Resultaterne viser høj nøjagtighed, endda perfekt med 1-nærmeste nabo.

Disse scorer er dog ikke pålidelige, da evalueringen blev udført på træningssættet—de samme data, som modellen blev trænet på. I dette tilfælde forudsiger modellen blot eksempler, den allerede har set.

For at vurdere ydeevnen korrekt skal modellen evalueres på data, den ikke tidligere har set.

question mark

Hvordan forudsiger KNeighborsClassifier 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