Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara KNeighborsClassifier | Modellazione
Introduzione al Machine Learning con Python

bookKNeighborsClassifier

Quando si crea l'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. Viene spiegato in modo più dettagliato in altri corsi come Linear Regression with Python oppure Classification with Python.

k-Nearest Neighbors

k-NN predice la classe di una nuova istanza osservando i k campioni di addestramento più simili. KNeighborsClassifier implementa questo algoritmo in Scikit-learn.

  1. Per un nuovo punto, trova i k vicini più prossimi utilizzando la similarità delle caratteristiche.
  2. La classe più comune tra questi diventa la previsione.

k è un iperparametro (valore predefinito = 5). Valori diversi modificano il comportamento del modello, quindi la scelta di k è importante.

KNeighborsClassifier durante .fit()

A differenza di molti algoritmi, KNeighborsClassifier memorizza semplicemente i dati di addestramento. Tuttavia, è necessario chiamare .fit(X, y) affinché il modello sappia a quale dataset fare riferimento durante la previsione.

KNeighborsClassifier durante .predict()

Durante la previsione, il classificatore ricerca per ogni istanza i k vicini più prossimi. Nell'esempio visivo, sono mostrate solo due caratteristiche; aggiungere ulteriori caratteristiche solitamente migliora la separazione delle classi e l'accuratezza della previsione.

Note
Nota

Nei gif sopra, vengono utilizzate solo due caratteristiche, 'body_mass_g' e 'culmen_depth_mm', perché è difficile visualizzare grafici in dimensioni superiori. Includere ulteriori caratteristiche probabilmente aiuterà il modello a separare meglio i punti dati verdi e rossi, consentendo a KNeighborsClassifier di effettuare previsioni più accurate.

Esempio di Codifica KNeighborsClassifier

È possibile creare un classificatore, addestrarlo e verificarne l'accuratezza utilizzando .score(). L'argomento n_neighbors controlla k—prova sia 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

L'utilizzo di k=1 può produrre un'accuratezza perfetta, ma questo è fuorviante perché la valutazione è stata effettuata sul training set. Per misurare le reali prestazioni, testare sempre il modello su dati non visti.

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

Suggested prompts:

Can you explain why using k=1 might give perfect accuracy on the training set?

How should I properly evaluate the performance of a k-NN model?

What does the `.score()` method actually measure in this context?

Awesome!

Completion rate improved to 3.13

bookKNeighborsClassifier

Scorri per mostrare il menu

Quando si crea l'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. Viene spiegato in modo più dettagliato in altri corsi come Linear Regression with Python oppure Classification with Python.

k-Nearest Neighbors

k-NN predice la classe di una nuova istanza osservando i k campioni di addestramento più simili. KNeighborsClassifier implementa questo algoritmo in Scikit-learn.

  1. Per un nuovo punto, trova i k vicini più prossimi utilizzando la similarità delle caratteristiche.
  2. La classe più comune tra questi diventa la previsione.

k è un iperparametro (valore predefinito = 5). Valori diversi modificano il comportamento del modello, quindi la scelta di k è importante.

KNeighborsClassifier durante .fit()

A differenza di molti algoritmi, KNeighborsClassifier memorizza semplicemente i dati di addestramento. Tuttavia, è necessario chiamare .fit(X, y) affinché il modello sappia a quale dataset fare riferimento durante la previsione.

KNeighborsClassifier durante .predict()

Durante la previsione, il classificatore ricerca per ogni istanza i k vicini più prossimi. Nell'esempio visivo, sono mostrate solo due caratteristiche; aggiungere ulteriori caratteristiche solitamente migliora la separazione delle classi e l'accuratezza della previsione.

Note
Nota

Nei gif sopra, vengono utilizzate solo due caratteristiche, 'body_mass_g' e 'culmen_depth_mm', perché è difficile visualizzare grafici in dimensioni superiori. Includere ulteriori caratteristiche probabilmente aiuterà il modello a separare meglio i punti dati verdi e rossi, consentendo a KNeighborsClassifier di effettuare previsioni più accurate.

Esempio di Codifica KNeighborsClassifier

È possibile creare un classificatore, addestrarlo e verificarne l'accuratezza utilizzando .score(). L'argomento n_neighbors controlla k—prova sia 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

L'utilizzo di k=1 può produrre un'accuratezza perfetta, ma questo è fuorviante perché la valutazione è stata effettuata sul training set. Per misurare le reali prestazioni, testare sempre il modello su dati non visti.

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