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

Awesome!

Completion rate improved to 4.17

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