CommencezCommencez gratuitement

Surapprentissage et sous-apprentissage

Interpréter la complexité d'un modèle est une excellente façon d'évaluer la performance en apprentissage supervisé. Votre objectif est de produire un modèle qui sache capter la relation entre les caractéristiques et la variable cible, tout en généralisant bien à de nouvelles observations.

Les ensembles d'entraînement et de test ont été créés à partir du jeu de données churn_df et préchargés sous les noms X_train, X_test, y_train et y_test.

De plus, KNeighborsClassifier a été importé pour vous, ainsi que numpy sous le nom np.

Cette activité fait partie du cours

Apprentissage supervisé avec scikit-learn

Voir le cours

Instructions de l’exercice

  • Créez neighbors comme un tableau numpy de valeurs allant de 1 jusqu'à 12 inclus.
  • Instanciez un KNeighborsClassifier en fixant le nombre de voisins à la valeur de l'itérateur neighbor.
  • Ajustez le modèle aux données d'entraînement.
  • Calculez séparément les scores d'exactitude pour l'ensemble d'entraînement et l'ensemble de test avec la méthode .score(), puis assignez les résultats aux dictionnaires train_accuracies et test_accuracies, respectivement, en utilisant l'itérateur neighbor comme indice.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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)
Modifier et exécuter le code