IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Crea neighbors come un array numpy di valori da 1 fino a 12 incluso.
  • Istanziare un KNeighborsClassifier, con il numero di vicini uguale all'iteratore neighbor.
  • 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 dizionari train_accuracies e test_accuracies, rispettivamente, utilizzando l'iteratore neighbor come 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)
Modifica ed esegui il codice