Überanpassung und Unteranpassung
Die Interpretation der Modellkomplexität ist eine gute Möglichkeit, die Leistung des überwachten Lernens zu bewerten. Dein Ziel ist es, ein Modell zu erstellen, das die Beziehung zwischen den Merkmalen und der Zielvariablen interpretieren kann und auch bei neuen Beobachtungen gut verallgemeinert.
Die Trainings- und Testdatensätze wurden aus dem Datensatz churn_df
erstellt und als X_train
, X_test
, y_train
und y_test
vorgeladen.
Außerdem wurde KNeighborsClassifier
zusammen mit numpy
als np
für dich importiert.
Diese Übung ist Teil des Kurses
Überwachtes Lernen mit scikit-learn
Anleitung zur Übung
- Erstelle
neighbors
als einnumpy
-Array mit Werten von1
bis einschließlich12
. - Instanziiere einen
KNeighborsClassifier
mit der Anzahl der Nachbarn gleich demneighbor
-Iterator. - Passe das Modell an die Trainingsdaten an.
- Berechne separat die Korrektklassifikationsraten für die Trainingsmenge und die Testmenge mit der Methode
.score()
und weise die Ergebnisse den Dictionarystrain_accuracies
bzw.test_accuracies
zu und nutze dabei denneighbor
-Iterator als Index.
Interaktive Übung zum Anfassen
Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.
# 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)