Implementering 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ˉ och s för X;transform(X)– returnerar Xscaled med xˉ,s från.fit();fit_transform(X)–.fit(X)följt av.transform(X).
Du måste beräkna xˉ och s endast på träningsuppsättningen med hjälp av .fit() eller .fit_transform().
Använd sedan .transform() på 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.
123456789101112131415161718192021222324252627from 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)
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Fantastiskt!
Completion betyg förbättrat till 3.33
Implementering 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ˉ och s för X;transform(X)– returnerar Xscaled med xˉ,s från.fit();fit_transform(X)–.fit(X)följt av.transform(X).
Du måste beräkna xˉ och s endast på träningsuppsättningen med hjälp av .fit() eller .fit_transform().
Använd sedan .transform() på 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.
123456789101112131415161718192021222324252627from 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)
Tack för dina kommentarer!