Overfitting e underfitting
Interpretare la complessità del modello è un ottimo modo per valutare le prestazioni dell'apprendimento supervisionato. Il tuo obiettivo è quello di produrre un modello in grado di interpretare la relazione tra le caratteristiche e la variabile target, oltre che di generalizzare bene quando viene esposto a nuove osservazioni.
I set di allenamento e di test sono stati creati a partire dal dataset churn_df e sono stati precaricati come X_train, X_test, y_train e y_test.
Inoltre, KNeighborsClassifier è stato importato per te insieme a numpy come np.
Questo esercizio fa parte del corso
Apprendimento supervisionato con scikit-learn
Istruzioni dell'esercizio
- Crea
neighborscome un arraynumpydi valori da1fino a12incluso. - Istanziare un
KNeighborsClassifier, con il numero di vicini uguale all'iteratoreneighbor. - Adatta il modello ai dati di formazione.
- Calcola i punteggi di accuratezza per l'insieme di allenamento e l'insieme di prova separatamente utilizzando il metodo
.score()e assegna i risultati ai dizionaritrain_accuraciesetest_accuracies, rispettivamente, utilizzando l'iteratoreneighborcome indice.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Create neighbors
neighbors = np.arange(____, ____)
train_accuracies = {}
test_accuracies = {}
for neighbor in neighbors:
# Set up a KNN Classifier
knn = ____(____=____)
# Fit the model
knn.____(____, ____)
# Compute accuracy
train_accuracies[____] = knn.____(____, ____)
test_accuracies[____] = knn.____(____, ____)
print(neighbors, '\n', train_accuracies, '\n', test_accuracies)