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
Instructions de l’exercice
- Créez
neighborscomme un tableaunumpyde valeurs allant de1jusqu'à12inclus. - Instanciez un
KNeighborsClassifieren fixant le nombre de voisins à la valeur de l'itérateurneighbor. - 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 dictionnairestrain_accuraciesettest_accuracies, respectivement, en utilisant l'itérateurneighborcomme 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)