Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Implementering av k-NN | K-NN-Klassificerare
Quizzes & Challenges
Quizzes
Challenges
/
Klassificering med Python

bookImplementering av k-NN

KNeighborsClassifier

Att implementera k-Nearest Neighbors är ganska enkelt. Det enda som krävs är att importera och använda klassen KNeighborsClassifier.

När du har importerat klassen och skapat ett klassobjekt så här:

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

Måste du mata in träningsdata med metoden .fit():

knn.fit(X_scaled, y)

Och det är allt! Nu kan du förutsäga nya värden.

y_pred = knn.predict(X_new_scaled)

Skalning av data

Kom dock ihåg att datan måste skalas. StandardScaler används ofta för detta ändamål:

Du måste beräkna xˉ\bar x och ss endast på träningsuppsättningen med hjälp av .fit() eller .fit_transform(). Använd sedan .transform()testuppsättningen så att båda uppsättningarna skalas identiskt:

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

Att använda olika skalningsvärden för träning och test försämrar prediktionerna.

Exempel

Vi förutspår om en person tycker om Star Wars VI genom att använda deras betyg för Episod IV och V (från The Movies Dataset). Efter träning testar vi två användare: en gav IV/V betygen 5 och 5, den andra 4.5 och 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

Vilka av följande klassnamn från scikit-learn används för att implementera k-Nearest Neighbors-klassificeraren och för att skala funktioner vid förberedelse av data för k-NN?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 4

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 scaling is important for k-Nearest Neighbors?

What does the output of the prediction mean in this example?

How do I choose the best value for n_neighbors in KNeighborsClassifier?

Awesome!

Completion rate improved to 4.17

bookImplementering av k-NN

Svep för att visa menyn

KNeighborsClassifier

Att implementera k-Nearest Neighbors är ganska enkelt. Det enda som krävs är att importera och använda klassen KNeighborsClassifier.

När du har importerat klassen och skapat ett klassobjekt så här:

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

Måste du mata in träningsdata med metoden .fit():

knn.fit(X_scaled, y)

Och det är allt! Nu kan du förutsäga nya värden.

y_pred = knn.predict(X_new_scaled)

Skalning av data

Kom dock ihåg att datan måste skalas. StandardScaler används ofta för detta ändamål:

Du måste beräkna xˉ\bar x och ss endast på träningsuppsättningen med hjälp av .fit() eller .fit_transform(). Använd sedan .transform()testuppsättningen så att båda uppsättningarna skalas identiskt:

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

Att använda olika skalningsvärden för träning och test försämrar prediktionerna.

Exempel

Vi förutspår om en person tycker om Star Wars VI genom att använda deras betyg för Episod IV och V (från The Movies Dataset). Efter träning testar vi två användare: en gav IV/V betygen 5 och 5, den andra 4.5 och 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

Vilka av följande klassnamn från scikit-learn används för att implementera k-Nearest Neighbors-klassificeraren och för att skala funktioner vid förberedelse av data för k-NN?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 4
some-alt