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

KNeighborsClassifier

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 huvudämnet 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 (standard = 5). Olika värden förändrar modellens beteende, så det är viktigt att justera k.

KNeighborsClassifier under .fit()

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

kNNfit

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.

kNNpredict
Note
Notering

I gifarna ovan används endast två egenskaper, 'body_mass_g' och 'culmen_depth_mm', eftersom det är svårt att visualisera diagram med fler dimensioner. Att inkludera fler egenskaper kommer sannolikt att hjälpa modellen att bättre separera de gröna och röda datapunkterna, vilket gör att KNeighborsClassifier kan göra mer träffsäkra förutsägelser.

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))

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?

Vänligen välj det korrekta svaret

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

Avsnitt 4. Kapitel 2
some-alt