KNeighborsClassifier
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.
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.
- Per un nuovo punto, trova i k vicini più prossimi utilizzando la similarità delle caratteristiche.
- 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.
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.
12345678910111213import 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))
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.
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
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
KNeighborsClassifier
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.
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.
- Per un nuovo punto, trova i k vicini più prossimi utilizzando la similarità delle caratteristiche.
- 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.
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.
12345678910111213import 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))
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.
Grazie per i tuoi commenti!