Überanpassung und Unteranpassung
Anhand der Modellkomplexität lässt sich die Leistung des Modells beim überwachten Lernen gut bewerten. Deine Aufgabe ist es, ein Modell zu erstellen, das die Beziehung zwischen den Merkmalen und der Zielvariablen interpretieren kann und auch bei neuen Daten gut verallgemeinert.
Die Trainings- und Testmengen wurden aus dem Datensatz churn_df
erstellt und als X_train
, X_test
, y_train
und y_test
geladen.
Außerdem wurde KNeighborsClassifier
zusammen mit numpy
als np
schon importiert.
Diese Übung ist Teil des Kurses
Überwachtes Lernen mit scikit-learn
Anleitung zur Übung
- Erstelle
neighbors
alsnumpy
-Array mit Werten von1
bis einschließlich12
. - Instanziiere ein
KNeighborsClassifier
-Objekt mit der Anzahl der Nachbarn gleich demneighbor
-Iterator. - Passe das Modell an die Trainingsdaten an.
- Berechne mit der Methode
.score()
separat die Korrektklassifikationsraten für die Trainings- und die Testmenge, weise die Ergebnisse den Dictionarystrain_accuracies
bzw.test_accuracies
zu und nutze dabei denneighbor
-Iterator als Index.
Interaktive Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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)