Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Implementazione di k-NN | Classificatore K-Nn
Classificazione con Python

bookImplementazione di k-NN

KNeighborsClassifier

L'implementazione di k-Nearest Neighbors è piuttosto semplice. È sufficiente importare e utilizzare la classe KNeighborsClassifier.

Dopo aver importato la classe e creato un oggetto della classe come segue:

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

È necessario fornire i dati di addestramento utilizzando il metodo .fit():

knn.fit(X_scaled, y)

E questo è tutto! Ora è possibile prevedere nuovi valori.

y_pred = knn.predict(X_new_scaled)

Scalare i dati

Tuttavia, ricordare che i dati devono essere scalati. StandardScaler è comunemente utilizzato a questo scopo:

È necessario calcolare xˉ\bar x e ss solo sul set di addestramento utilizzando .fit() o .fit_transform(). Successivamente, utilizzare .transform() sul set di test affinché entrambi i set siano scalati in modo identico:

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

L'utilizzo di valori di scaling diversi per addestramento e test compromette le predizioni.

Esempio

Si prevede se una persona apprezza Star Wars VI utilizzando le sue valutazioni per gli Episodi IV e V (da The Movies Dataset). Dopo l'addestramento, vengono testati due utenti: uno ha valutato IV/V come 5 e 5, l'altro come 4.5 e 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

Quali tra i seguenti nomi di classi di scikit-learn vengono utilizzati per implementare il classificatore k-Nearest Neighbors e per scalare le caratteristiche durante la preparazione dei dati per k-NN?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 4

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

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

bookImplementazione di k-NN

Scorri per mostrare il menu

KNeighborsClassifier

L'implementazione di k-Nearest Neighbors è piuttosto semplice. È sufficiente importare e utilizzare la classe KNeighborsClassifier.

Dopo aver importato la classe e creato un oggetto della classe come segue:

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

È necessario fornire i dati di addestramento utilizzando il metodo .fit():

knn.fit(X_scaled, y)

E questo è tutto! Ora è possibile prevedere nuovi valori.

y_pred = knn.predict(X_new_scaled)

Scalare i dati

Tuttavia, ricordare che i dati devono essere scalati. StandardScaler è comunemente utilizzato a questo scopo:

È necessario calcolare xˉ\bar x e ss solo sul set di addestramento utilizzando .fit() o .fit_transform(). Successivamente, utilizzare .transform() sul set di test affinché entrambi i set siano scalati in modo identico:

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

L'utilizzo di valori di scaling diversi per addestramento e test compromette le predizioni.

Esempio

Si prevede se una persona apprezza Star Wars VI utilizzando le sue valutazioni per gli Episodi IV e V (da The Movies Dataset). Dopo l'addestramento, vengono testati due utenti: uno ha valutato IV/V come 5 e 5, l'altro come 4.5 e 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

Quali tra i seguenti nomi di classi di scikit-learn vengono utilizzati per implementare il classificatore k-Nearest Neighbors e per scalare le caratteristiche durante la preparazione dei dati per k-NN?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 4
some-alt