Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Implementering af k-NN | K-NN-Klassifikator
Klassifikation med Python

bookImplementering af k-NN

KNeighborsClassifier

Implementering af k-Nearest Neighbors er ret ligetil. Det eneste, der kræves, er at importere og anvende klassen KNeighborsClassifier.

Når klassen er importeret, og et klasseobjekt er oprettet som dette:

# Importing the class
from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier(n_neighbors=3)

Skal træningsdata tilføres ved hjælp af .fit()-metoden:

knn.fit(X_scaled, y)

Det er alt! Nu kan der forudsiges nye værdier.

y_pred = knn.predict(X_new_scaled)

Skalering af data

Det er dog vigtigt at huske, at data skal skaleres. StandardScaler anvendes ofte til dette formål:

Du skal beregne xˉ\bar x og ss kun på træningssættet ved hjælp af .fit() eller .fit_transform(). Brug derefter .transform()test-sættet, så begge sæt skaleres identisk:

from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)

Brug af forskellige skaleringsværdier for træning og test forringer forudsigelserne.

Eksempel

Vi forudsiger, om en person kan lide Star Wars VI ved at bruge deres vurderinger af Episode IV og V (fra The Movies Dataset). Efter træning tester vi to brugere: én har vurderet IV/V som 5 og 5, den anden som 4.5 og 4.

123456789101112131415161718192021222324252627
from sklearn.neighbors import KNeighborsClassifier from sklearn.preprocessing import StandardScaler import numpy as np import pandas as pd import warnings warnings.filterwarnings('ignore') df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/starwars_binary.csv') # Dropping the target column and leaving only features as `X_train` X_train = df.drop('StarWars6', axis=1) # Storing target column as `y_train`, which contains 1 (liked SW 6) or 0 (didn't like SW 6) y_train = df['StarWars6'] # Test set of two people X_test = np.array([[5, 5], [4.5, 4]]) # Scaling the data scaler = StandardScaler() X_train = scaler.fit_transform(X_train) X_test = scaler.transform(X_test) # Building a model and predict new instances knn = KNeighborsClassifier(n_neighbors=13).fit(X_train, y_train) y_pred = knn.predict(X_test) print(y_pred)
copy
question mark

Hvilke af følgende klassenavne fra scikit-learn bruges til at implementere k-Nearest Neighbors-klassifikatoren og til at skalere features ved forberedelse af data til k-NN?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 4

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

bookImplementering af k-NN

Stryg for at vise menuen

KNeighborsClassifier

Implementering af k-Nearest Neighbors er ret ligetil. Det eneste, der kræves, er at importere og anvende klassen KNeighborsClassifier.

Når klassen er importeret, og et klasseobjekt er oprettet som dette:

# Importing the class
from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier(n_neighbors=3)

Skal træningsdata tilføres ved hjælp af .fit()-metoden:

knn.fit(X_scaled, y)

Det er alt! Nu kan der forudsiges nye værdier.

y_pred = knn.predict(X_new_scaled)

Skalering af data

Det er dog vigtigt at huske, at data skal skaleres. StandardScaler anvendes ofte til dette formål:

Du skal beregne xˉ\bar x og ss kun på træningssættet ved hjælp af .fit() eller .fit_transform(). Brug derefter .transform()test-sættet, så begge sæt skaleres identisk:

from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)

Brug af forskellige skaleringsværdier for træning og test forringer forudsigelserne.

Eksempel

Vi forudsiger, om en person kan lide Star Wars VI ved at bruge deres vurderinger af Episode IV og V (fra The Movies Dataset). Efter træning tester vi to brugere: én har vurderet IV/V som 5 og 5, den anden som 4.5 og 4.

123456789101112131415161718192021222324252627
from sklearn.neighbors import KNeighborsClassifier from sklearn.preprocessing import StandardScaler import numpy as np import pandas as pd import warnings warnings.filterwarnings('ignore') df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/starwars_binary.csv') # Dropping the target column and leaving only features as `X_train` X_train = df.drop('StarWars6', axis=1) # Storing target column as `y_train`, which contains 1 (liked SW 6) or 0 (didn't like SW 6) y_train = df['StarWars6'] # Test set of two people X_test = np.array([[5, 5], [4.5, 4]]) # Scaling the data scaler = StandardScaler() X_train = scaler.fit_transform(X_train) X_test = scaler.transform(X_test) # Building a model and predict new instances knn = KNeighborsClassifier(n_neighbors=13).fit(X_train, y_train) y_pred = knn.predict(X_test) print(y_pred)
copy
question mark

Hvilke af følgende klassenavne fra scikit-learn bruges til at implementere k-Nearest Neighbors-klassifikatoren og til at skalere features ved forberedelse af data til k-NN?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 4
some-alt