Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara KNeighborsClassifier | Modellizzazione
Introduzione al ML con Scikit-Learn

bookKNeighborsClassifier

Durante la creazione dell'estimatore finale in una pipeline, il modello scelto è stato KNeighborsClassifier. Questo capitolo fornisce una breve spiegazione di come funziona l'algoritmo.

Note
Nota

Il funzionamento dei modelli non è un argomento principale di questo corso, quindi va bene se qualcosa non ti è chiaro. È spiegato in modo più dettagliato in altri corsi come Linear Regression with Python oppure Classification with Python.

k-Nearest Neighbors

k-nearest neighbors (k-NN) è un algoritmo di apprendimento automatico che predice i risultati identificando le istanze più simili nel set di addestramento.

KNeighborsClassifier è l'implementazione di Scikit-learn di questo algoritmo per compiti di classificazione. Il processo di previsione funziona come segue:

  1. Per una nuova istanza, identifica le k istanze di addestramento più vicine in base alla similarità delle caratteristiche. Queste sono chiamate vicini.
  2. Determina la classe più frequente tra i k vicini. Quella classe diventa la previsione per la nuova istanza.

Il parametro k specifica il numero di vicini da considerare. Per impostazione predefinita, è impostato a 5. Valori diversi di k possono portare a previsioni differenti, rendendolo un iperparametro — un parametro scelto prima dell'addestramento che influisce direttamente sul comportamento del modello.

Sperimentare con diversi valori di k e selezionare quello che fornisce le migliori prestazioni è chiamato ottimizzazione degli iperparametri. Questo processo è essenziale per ottimizzare il modello.

KNeighborsClassifier durante .fit()

A differenza della maggior parte dei modelli di ML, il KNeighborsClassifier si limita a memorizzare il set di addestramento durante la fase di training. Tuttavia, anche se l'addestramento non richiede tempo, è obbligatorio chiamare .fit(X, y) affinché il modello possa ricordare il set di addestramento.

KNeighborsClassifier durante .predict()

Durante la predizione, il KNeighborsClassifier individua in modo greedy i k vicini più prossimi per ogni nuova istanza.

Note
Nota

Nei gif sopra, vengono utilizzate solo due feature, 'body_mass_g' e 'culmen_depth_mm', perché la visualizzazione di grafici in dimensioni superiori è complessa. L'inclusione di ulteriori feature probabilmente aiuterà il modello a separare meglio i punti dati verdi e rossi, consentendo al KNeighborsClassifier di effettuare previsioni più accurate.

Esempio di Codice KNeighborsClassifier

Creazione di un KNeighborsClassifier, addestramento e valutazione della sua accuratezza utilizzando il metodo .score(). Il dataset nel file .csv è già stato preprocessato.

Il numero di vicini (k) viene specificato con l'argomento n_neighbors durante l'inizializzazione di KNeighborsClassifier. Provare sia il valore predefinito 5 che 1.

12345678910111213
import pandas as pd from sklearn.neighbors import KNeighborsClassifier df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_pipelined.csv') # Assign X, y variables (X is already preprocessed and y is already encoded) X, y = df.drop('species', axis=1), df['species'] # Initialize and train a model knn5 = KNeighborsClassifier().fit(X, y) # Trained 5 neighbors model knn1 = KNeighborsClassifier(n_neighbors=1).fit(X, y) # Trained 1 neighbor model # Print the scores of both models print('5 Neighbors score:',knn5.score(X, y)) print('1 Neighbor score:',knn1.score(X, y))
copy

I risultati mostrano un'elevata accuratezza, addirittura perfetta con 1-nearest neighbor.

Tuttavia, questi punteggi non sono affidabili perché la valutazione è stata effettuata sul training set—gli stessi dati su cui il modello è stato addestrato. In questo caso, il modello semplicemente predice istanze che ha già visto.

Per valutare correttamente le prestazioni, il modello deve essere testato su dati che non ha mai incontrato prima.

question mark

Come fa il KNeighborsClassifier a fare previsioni per una nuova istanza?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 2

Chieda ad AI

expand

Chieda ad AI

ChatGPT

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

Awesome!

Completion rate improved to 3.13

bookKNeighborsClassifier

Scorri per mostrare il menu

Durante la creazione dell'estimatore finale in una pipeline, il modello scelto è stato KNeighborsClassifier. Questo capitolo fornisce una breve spiegazione di come funziona l'algoritmo.

Note
Nota

Il funzionamento dei modelli non è un argomento principale di questo corso, quindi va bene se qualcosa non ti è chiaro. È spiegato in modo più dettagliato in altri corsi come Linear Regression with Python oppure Classification with Python.

k-Nearest Neighbors

k-nearest neighbors (k-NN) è un algoritmo di apprendimento automatico che predice i risultati identificando le istanze più simili nel set di addestramento.

KNeighborsClassifier è l'implementazione di Scikit-learn di questo algoritmo per compiti di classificazione. Il processo di previsione funziona come segue:

  1. Per una nuova istanza, identifica le k istanze di addestramento più vicine in base alla similarità delle caratteristiche. Queste sono chiamate vicini.
  2. Determina la classe più frequente tra i k vicini. Quella classe diventa la previsione per la nuova istanza.

Il parametro k specifica il numero di vicini da considerare. Per impostazione predefinita, è impostato a 5. Valori diversi di k possono portare a previsioni differenti, rendendolo un iperparametro — un parametro scelto prima dell'addestramento che influisce direttamente sul comportamento del modello.

Sperimentare con diversi valori di k e selezionare quello che fornisce le migliori prestazioni è chiamato ottimizzazione degli iperparametri. Questo processo è essenziale per ottimizzare il modello.

KNeighborsClassifier durante .fit()

A differenza della maggior parte dei modelli di ML, il KNeighborsClassifier si limita a memorizzare il set di addestramento durante la fase di training. Tuttavia, anche se l'addestramento non richiede tempo, è obbligatorio chiamare .fit(X, y) affinché il modello possa ricordare il set di addestramento.

KNeighborsClassifier durante .predict()

Durante la predizione, il KNeighborsClassifier individua in modo greedy i k vicini più prossimi per ogni nuova istanza.

Note
Nota

Nei gif sopra, vengono utilizzate solo due feature, 'body_mass_g' e 'culmen_depth_mm', perché la visualizzazione di grafici in dimensioni superiori è complessa. L'inclusione di ulteriori feature probabilmente aiuterà il modello a separare meglio i punti dati verdi e rossi, consentendo al KNeighborsClassifier di effettuare previsioni più accurate.

Esempio di Codice KNeighborsClassifier

Creazione di un KNeighborsClassifier, addestramento e valutazione della sua accuratezza utilizzando il metodo .score(). Il dataset nel file .csv è già stato preprocessato.

Il numero di vicini (k) viene specificato con l'argomento n_neighbors durante l'inizializzazione di KNeighborsClassifier. Provare sia il valore predefinito 5 che 1.

12345678910111213
import pandas as pd from sklearn.neighbors import KNeighborsClassifier df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_pipelined.csv') # Assign X, y variables (X is already preprocessed and y is already encoded) X, y = df.drop('species', axis=1), df['species'] # Initialize and train a model knn5 = KNeighborsClassifier().fit(X, y) # Trained 5 neighbors model knn1 = KNeighborsClassifier(n_neighbors=1).fit(X, y) # Trained 1 neighbor model # Print the scores of both models print('5 Neighbors score:',knn5.score(X, y)) print('1 Neighbor score:',knn1.score(X, y))
copy

I risultati mostrano un'elevata accuratezza, addirittura perfetta con 1-nearest neighbor.

Tuttavia, questi punteggi non sono affidabili perché la valutazione è stata effettuata sul training set—gli stessi dati su cui il modello è stato addestrato. In questo caso, il modello semplicemente predice istanze che ha già visto.

Per valutare correttamente le prestazioni, il modello deve essere testato su dati che non ha mai incontrato prima.

question mark

Come fa il KNeighborsClassifier a fare previsioni per una nuova istanza?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 2
some-alt