Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Implementering av k-NN | Seksjon
Practice
Projects
Quizzes & Challenges
Quizer
Challenges
/
Grunnleggende Overvåket Læring

bookImplementering av k-NN

KNeighborsClassifier

Implementering av k-Nearest Neighbors er ganske rett frem. Det eneste som trengs er å importere og bruke klassen KNeighborsClassifier.

Konstruktør:

  • KNeighborsClassifier(n_neighbors = 5)
  • n_neighbors – antall naboer (k). Standardverdi er 5;

Metoder:

  • fit(X, y) – Tilpass treningssettet;
  • predict(X) – Prediker klassen for X;
  • score(X, y) – Returnerer nøyaktigheten for X, y-settet.

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 inn treningsdataene ved å bruke .fit()-metoden:

knn.fit(X_scaled, y)

Det er alt! Nå kan du predikere nye verdier.

y_pred = knn.predict(X_new_scaled)

Skalering av data

Det er imidlertid viktig å huske at dataene må skaleres. StandardScaler brukes ofte til dette formålet:

Konstruktør:

  • StandardScaler().

Metoder:

  • fit(X) – beregner xˉ\bar{x} og ss for X;
  • transform(X) – returnerer XscaledX_{\text{scaled}} ved bruk av xˉ,s\bar{x}, s fra .fit();
  • fit_transform(X).fit(X) deretter .transform(X).

Du må beregne xˉ\bar x og ss kun på treningssettet ved å bruke .fit() eller .fit_transform(). Bruk deretter .transform()testsettet slik at begge settene skaleres identisk:

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

Å bruke ulike skaleringsverdier for trening og test svekker prediksjonene.

Eksempel

Vi forutsier om en person liker Star Wars VI ved å bruke deres vurderinger for Episode IV og V (fra The Movies Dataset). Etter trening tester vi to brukere: én vurderte IV/V som 5 og 5, den andre som 4.5 og 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

Hvilke av følgende klassenavn fra scikit-learn brukes til å implementere k-Nearest Neighbors-klassifiseringen og til å skalere funksjoner ved forberedelse av data for k-NN?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 17

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

bookImplementering av k-NN

Sveip for å vise menyen

KNeighborsClassifier

Implementering av k-Nearest Neighbors er ganske rett frem. Det eneste som trengs er å importere og bruke klassen KNeighborsClassifier.

Konstruktør:

  • KNeighborsClassifier(n_neighbors = 5)
  • n_neighbors – antall naboer (k). Standardverdi er 5;

Metoder:

  • fit(X, y) – Tilpass treningssettet;
  • predict(X) – Prediker klassen for X;
  • score(X, y) – Returnerer nøyaktigheten for X, y-settet.

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 inn treningsdataene ved å bruke .fit()-metoden:

knn.fit(X_scaled, y)

Det er alt! Nå kan du predikere nye verdier.

y_pred = knn.predict(X_new_scaled)

Skalering av data

Det er imidlertid viktig å huske at dataene må skaleres. StandardScaler brukes ofte til dette formålet:

Konstruktør:

  • StandardScaler().

Metoder:

  • fit(X) – beregner xˉ\bar{x} og ss for X;
  • transform(X) – returnerer XscaledX_{\text{scaled}} ved bruk av xˉ,s\bar{x}, s fra .fit();
  • fit_transform(X).fit(X) deretter .transform(X).

Du må beregne xˉ\bar x og ss kun på treningssettet ved å bruke .fit() eller .fit_transform(). Bruk deretter .transform()testsettet slik at begge settene skaleres identisk:

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

Å bruke ulike skaleringsverdier for trening og test svekker prediksjonene.

Eksempel

Vi forutsier om en person liker Star Wars VI ved å bruke deres vurderinger for Episode IV og V (fra The Movies Dataset). Etter trening tester vi to brukere: én vurderte IV/V som 5 og 5, den andre som 4.5 og 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

Hvilke av følgende klassenavn fra scikit-learn brukes til å implementere k-Nearest Neighbors-klassifiseringen og til å skalere funksjoner ved forberedelse av data for k-NN?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 17
some-alt