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 | Sektion
Practice
Projects
Quizzes & Challenges
Frågesporter
Challenges
/
Grunder i Övervakad Inlärning

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.

Konstruktor:

  • KNeighborsClassifier(n_neighbors = 5)
  • n_neighbors – antal grannar (k). Standardvärdet är 5;

Metoder:

  • fit(X, y) – Anpassar träningsdata;
  • predict(X) – Förutsäger klassen för X;
  • score(X, y) – Returnerar noggrannheten för X, y-datasetet.

När klassen har importerats och ett klassobjekt har skapats enligt följande:

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

Mata in träningsdata med metoden .fit():

knn.fit(X_scaled, y)

Klart! Nu kan nya värden förutsägas.

y_pred = knn.predict(X_new_scaled)

Skalning av data

Observera dock att data måste skalas. StandardScaler används ofta för detta ändamål:

Konstruktor:

  • StandardScaler().

Metoder:

  • fit(X) – beräknar xˉ\bar{x} och ss för X;
  • transform(X) – returnerar XscaledX_{\text{scaled}} med xˉ,s\bar{x}, s från .fit();
  • fit_transform(X).fit(X) följt av .transform(X).

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 17

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

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.

Konstruktor:

  • KNeighborsClassifier(n_neighbors = 5)
  • n_neighbors – antal grannar (k). Standardvärdet är 5;

Metoder:

  • fit(X, y) – Anpassar träningsdata;
  • predict(X) – Förutsäger klassen för X;
  • score(X, y) – Returnerar noggrannheten för X, y-datasetet.

När klassen har importerats och ett klassobjekt har skapats enligt följande:

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

Mata in träningsdata med metoden .fit():

knn.fit(X_scaled, y)

Klart! Nu kan nya värden förutsägas.

y_pred = knn.predict(X_new_scaled)

Skalning av data

Observera dock att data måste skalas. StandardScaler används ofta för detta ändamål:

Konstruktor:

  • StandardScaler().

Metoder:

  • fit(X) – beräknar xˉ\bar{x} och ss för X;
  • transform(X) – returnerar XscaledX_{\text{scaled}} med xˉ,s\bar{x}, s från .fit();
  • fit_transform(X).fit(X) följt av .transform(X).

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 17
some-alt