Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Implementatie van k-NN | K-NN-Classificator
Classificatie met Python

bookImplementatie van k-NN

KNeighborsClassifier

Het implementeren van k-Nearest Neighbors is vrij eenvoudig. Het enige wat nodig is, is het importeren en gebruiken van de KNeighborsClassifier klasse.

Nadat de klasse is geïmporteerd en een klasse-object is aangemaakt zoals hieronder:

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

Moet de trainingsdata worden aangeboden via de .fit() methode:

knn.fit(X_scaled, y)

En dat is alles! Nu kunnen nieuwe waarden worden voorspeld.

y_pred = knn.predict(X_new_scaled)

Gegevens schalen

Houd er echter rekening mee dat de gegevens geschaald moeten worden. StandardScaler wordt hiervoor vaak gebruikt:

Bereken xˉ\bar x en ss alleen op de trainingsset met behulp van .fit() of .fit_transform(). Gebruik vervolgens .transform() op de testset zodat beide sets identiek worden geschaald:

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

Het gebruik van verschillende schaalwaarden voor train en test schaadt de voorspellingen.

Voorbeeld

We voorspellen of een persoon Star Wars VI leuk vindt op basis van hun beoordelingen voor Episodes IV en V (uit The Movies Dataset). Na het trainen testen we twee gebruikers: één beoordeelde IV/V als 5 en 5, de ander als 4.5 en 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

Welke van de volgende class-namen uit scikit-learn worden gebruikt om de k-Nearest Neighbors-classificatie te implementeren en om features te schalen bij het voorbereiden van data voor k-NN?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 4

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Awesome!

Completion rate improved to 4.17

bookImplementatie van k-NN

Veeg om het menu te tonen

KNeighborsClassifier

Het implementeren van k-Nearest Neighbors is vrij eenvoudig. Het enige wat nodig is, is het importeren en gebruiken van de KNeighborsClassifier klasse.

Nadat de klasse is geïmporteerd en een klasse-object is aangemaakt zoals hieronder:

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

Moet de trainingsdata worden aangeboden via de .fit() methode:

knn.fit(X_scaled, y)

En dat is alles! Nu kunnen nieuwe waarden worden voorspeld.

y_pred = knn.predict(X_new_scaled)

Gegevens schalen

Houd er echter rekening mee dat de gegevens geschaald moeten worden. StandardScaler wordt hiervoor vaak gebruikt:

Bereken xˉ\bar x en ss alleen op de trainingsset met behulp van .fit() of .fit_transform(). Gebruik vervolgens .transform() op de testset zodat beide sets identiek worden geschaald:

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

Het gebruik van verschillende schaalwaarden voor train en test schaadt de voorspellingen.

Voorbeeld

We voorspellen of een persoon Star Wars VI leuk vindt op basis van hun beoordelingen voor Episodes IV en V (uit The Movies Dataset). Na het trainen testen we twee gebruikers: één beoordeelde IV/V als 5 en 5, de ander als 4.5 en 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

Welke van de volgende class-namen uit scikit-learn worden gebruikt om de k-Nearest Neighbors-classificatie te implementeren en om features te schalen bij het voorbereiden van data voor k-NN?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 4
some-alt