Overfitting en underfitting
Het interpreteren van modelcomplexiteit is een goede manier om de prestaties van supervised learning te beoordelen. Je doel is een model te maken dat de relatie tussen features en de doelvariabele kan interpreteren én goed kan generaliseren naar nieuwe observaties.
De training- en testsets zijn gemaakt uit de churn_df-gegevensset en vooraf geladen als X_train, X_test, y_train en y_test.
Daarnaast zijn KNeighborsClassifier en numpy als np voor je geïmporteerd.
Deze oefening maakt deel uit van de cursus
Supervised Learning met scikit-learn
Oefeninstructies
- Maak
neighborsals eennumpy-array met waarden van1tot en met12. - Instantier een
KNeighborsClassifier, met het aantal buren gelijk aan deneighbor-iterator. - Fit het model op de trainingsdata.
- Bereken de accuracyscores voor de trainingsset en de testset afzonderlijk met de methode
.score(), en sla de resultaten op in respectievelijk de dictionariestrain_accuraciesentest_accuracies, waarbij je deneighbor-iterator als index gebruikt.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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)