Surajustement et sous-ajustement
L’interprétation de la complexité des modèles est un excellent moyen d’évaluer les performances de l’apprentissage supervisé. Votre objectif est de produire un modèle capable d’interpréter la relation entre les caractéristiques et la variable cible, et également de bien se généraliser lorsqu’il est exposé à de nouvelles observations.
Les ensembles d’apprentissage et de test ont été créés à partir de l’ensemble de données churn_df
et préchargés en tant que X_train
, X_test
, y_train
et y_test
.
En outre, KNeighborsClassifier
a été importé pour vous en même temps que numpy
et np
.
Cet exercice fait partie du cours
Apprentissage supervisé avec scikit-learn
Instructions
- Créez
neighbors
en tant que tableaunumpy
de valeurs allant de1
à12
inclus. - Instanciez un
KNeighborsClassifier
, dont le nombre de voisins est égal à celui de l’itérateurneighbor
. - Ajustez le modèle aux données d’apprentissage.
- Calculez les scores de précision pour l’ensemble d’apprentissage et l’ensemble de test séparément à l’aide de la méthode
.score()
, et attribuez les résultats aux dictionnairestrain_accuracies
ettest_accuracies
, respectivement, en utilisant l’itérateurneighbor
comme index.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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)