Implementering av k-NN
KNeighborsClassifier
Implementering av k-Nearest Neighbors er ganske rett frem. Vi trenger bare å importere og bruke klassen KNeighborsClassifier.
Når du har importert klassen og opprettet et klasseobjekt slik:
# Importing the class
from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier(n_neighbors=3)
Må du mate den med treningsdata ved å bruke .fit()-metoden:
knn.fit(X_scaled, y)
Det er alt! Nå kan du forutsi nye verdier.
y_pred = knn.predict(X_new_scaled)
Skalering av data
Husk imidlertid at dataene må skaleres. StandardScaler brukes ofte til dette formålet:
Du bør beregne xˉ (gjennomsnitt) og s (standardavvik) på treningssettet ved å bruke enten .fit() eller .fit_transform()-metoden. Dette trinnet sikrer at skaleringsparametrene er utledet fra treningsdataene.
Når du har et testsett du skal forutsi, må du bruke den samme xˉ og s for å forhåndsbehandle disse dataene ved hjelp av .transform(). Denne konsistensen er avgjørende fordi det sikrer at testdataene skaleres på samme måte som treningsdataene, noe som opprettholder integriteten til modellens prediksjoner.
# Importing the class
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
# Calculating x̄ and s and scaling `X_train`
X_train_scaled = scaler.fit_transform(X_train)
# Scaling `X_test` with x̄ and s calculated in the previous line
X_test_scaled = scaler.transform(X_test)
Hvis du bruker forskjellige xˉ og s for treningssett og testsett, vil prediksjonene dine sannsynligvis bli dårligere.
Eksempel
La oss se på et enkelt eksempel hvor vi ønsker å forutsi om en person vil like Star Wars VI basert på deres vurderinger av Star Wars IV og V. Dataene er hentet fra The Movies Dataset med ekstra forhåndsbehandling. En person anses å like Star Wars VI hvis de gir den en vurdering på mer enn 4 (av 5).
Etter at vi har trent modellen vår, vil vi gjøre prediksjoner for to personer fra testsettet. Den første personen gir Star Wars IV og V vurderingene 5 og 5, henholdsvis, mens den andre personen gir vurderingene 4.5 og 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)
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Awesome!
Completion rate improved to 4.17
Implementering av k-NN
Sveip for å vise menyen
KNeighborsClassifier
Implementering av k-Nearest Neighbors er ganske rett frem. Vi trenger bare å importere og bruke klassen KNeighborsClassifier.
Når du har importert klassen og opprettet et klasseobjekt slik:
# Importing the class
from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier(n_neighbors=3)
Må du mate den med treningsdata ved å bruke .fit()-metoden:
knn.fit(X_scaled, y)
Det er alt! Nå kan du forutsi nye verdier.
y_pred = knn.predict(X_new_scaled)
Skalering av data
Husk imidlertid at dataene må skaleres. StandardScaler brukes ofte til dette formålet:
Du bør beregne xˉ (gjennomsnitt) og s (standardavvik) på treningssettet ved å bruke enten .fit() eller .fit_transform()-metoden. Dette trinnet sikrer at skaleringsparametrene er utledet fra treningsdataene.
Når du har et testsett du skal forutsi, må du bruke den samme xˉ og s for å forhåndsbehandle disse dataene ved hjelp av .transform(). Denne konsistensen er avgjørende fordi det sikrer at testdataene skaleres på samme måte som treningsdataene, noe som opprettholder integriteten til modellens prediksjoner.
# Importing the class
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
# Calculating x̄ and s and scaling `X_train`
X_train_scaled = scaler.fit_transform(X_train)
# Scaling `X_test` with x̄ and s calculated in the previous line
X_test_scaled = scaler.transform(X_test)
Hvis du bruker forskjellige xˉ og s for treningssett og testsett, vil prediksjonene dine sannsynligvis bli dårligere.
Eksempel
La oss se på et enkelt eksempel hvor vi ønsker å forutsi om en person vil like Star Wars VI basert på deres vurderinger av Star Wars IV og V. Dataene er hentet fra The Movies Dataset med ekstra forhåndsbehandling. En person anses å like Star Wars VI hvis de gir den en vurdering på mer enn 4 (av 5).
Etter at vi har trent modellen vår, vil vi gjøre prediksjoner for to personer fra testsettet. Den første personen gir Star Wars IV og V vurderingene 5 og 5, henholdsvis, mens den andre personen gir vurderingene 4.5 og 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)
Takk for tilbakemeldingene dine!