Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära KNeighborsClassifier | Modellering
Introduktion till maskininlärning med Python

bookKNeighborsClassifier

Vid skapandet av den slutliga estimatormodellen i en pipeline valdes modellen KNeighborsClassifier. Detta kapitel ger en kort förklaring av hur algoritmen fungerar.

Note
Notering

Hur modeller fungerar är inte ett huvudämne i denna kurs, så det är okej om något känns oklart. Det förklaras mer ingående i andra kurser som Linear Regression with Python eller Classification with Python.

k-Nearest Neighbors

k-NN förutspår klassen för en ny instans genom att titta på dess k mest liknande träningsprover. KNeighborsClassifier implementerar detta i Scikit-learn.

  1. För en ny punkt, hitta de k närmaste grannarna med hjälp av likhet i egenskaper.
  2. Den vanligaste klassen bland dessa blir förutsägelsen.

k är en hyperparameter (standardvärde = 5). Olika värden förändrar modellens beteende, så justering av k är viktigt.

KNeighborsClassifier under .fit()

Till skillnad från många algoritmer lagrar KNeighborsClassifier helt enkelt träningsdatan. Det är dock nödvändigt att anropa .fit(X, y) så att modellen vet vilket dataset som ska refereras vid prediktion.

KNeighborsClassifier under .predict()

Vid prediktion söker klassificeraren efter varje instans k närmaste grannar. I det visuella exemplet visas endast två egenskaper; att lägga till fler egenskaper förbättrar vanligtvis klass-separation och prediktionsnoggrannhet.

Note
Notering

I gif-bilderna ovan används endast två egenskaper, 'body_mass_g' och 'culmen_depth_mm', eftersom det är utmanande att visualisera högdimensionella diagram. Att inkludera ytterligare egenskaper kommer sannolikt att hjälpa modellen att bättre separera de gröna och röda datapunkterna, vilket gör det möjligt för KNeighborsClassifier att göra mer exakta prediktioner.

KNeighborsClassifier Kodexempel

Du kan skapa en klassificerare, träna den och kontrollera dess noggrannhet med .score(). Argumentet n_neighbors styr k—prova både 5 och 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

Att använda k=1 kan ge perfekt noggrannhet, men detta är missvisande eftersom utvärderingen gjordes på träningsdata. För att mäta verklig prestanda, testa alltid modellen på osedd data.

question mark

Hur gör KNeighborsClassifier förutsägelser för en ny instans?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 2

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Suggested prompts:

Can you explain why using k=1 might give perfect accuracy on the training set?

How should I properly evaluate the performance of a k-NN model?

What does the `.score()` method actually measure in this context?

bookKNeighborsClassifier

Svep för att visa menyn

Vid skapandet av den slutliga estimatormodellen i en pipeline valdes modellen KNeighborsClassifier. Detta kapitel ger en kort förklaring av hur algoritmen fungerar.

Note
Notering

Hur modeller fungerar är inte ett huvudämne i denna kurs, så det är okej om något känns oklart. Det förklaras mer ingående i andra kurser som Linear Regression with Python eller Classification with Python.

k-Nearest Neighbors

k-NN förutspår klassen för en ny instans genom att titta på dess k mest liknande träningsprover. KNeighborsClassifier implementerar detta i Scikit-learn.

  1. För en ny punkt, hitta de k närmaste grannarna med hjälp av likhet i egenskaper.
  2. Den vanligaste klassen bland dessa blir förutsägelsen.

k är en hyperparameter (standardvärde = 5). Olika värden förändrar modellens beteende, så justering av k är viktigt.

KNeighborsClassifier under .fit()

Till skillnad från många algoritmer lagrar KNeighborsClassifier helt enkelt träningsdatan. Det är dock nödvändigt att anropa .fit(X, y) så att modellen vet vilket dataset som ska refereras vid prediktion.

KNeighborsClassifier under .predict()

Vid prediktion söker klassificeraren efter varje instans k närmaste grannar. I det visuella exemplet visas endast två egenskaper; att lägga till fler egenskaper förbättrar vanligtvis klass-separation och prediktionsnoggrannhet.

Note
Notering

I gif-bilderna ovan används endast två egenskaper, 'body_mass_g' och 'culmen_depth_mm', eftersom det är utmanande att visualisera högdimensionella diagram. Att inkludera ytterligare egenskaper kommer sannolikt att hjälpa modellen att bättre separera de gröna och röda datapunkterna, vilket gör det möjligt för KNeighborsClassifier att göra mer exakta prediktioner.

KNeighborsClassifier Kodexempel

Du kan skapa en klassificerare, träna den och kontrollera dess noggrannhet med .score(). Argumentet n_neighbors styr k—prova både 5 och 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

Att använda k=1 kan ge perfekt noggrannhet, men detta är missvisande eftersom utvärderingen gjordes på träningsdata. För att mäta verklig prestanda, testa alltid modellen på osedd data.

question mark

Hur gör KNeighborsClassifier förutsägelser för en ny instans?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 2
some-alt