Przeuczenie i niedouczenie
Analiza złożoności modelu to doskonały sposób na ocenę wydajności uczenia nadzorowanego. Celem jest zbudowanie modelu, który poprawnie interpretuje zależności między cechami a zmienną docelową, a jednocześnie dobrze generalizuje na nowych danych.
Zbiory treningowy i testowy zostały utworzone ze zbioru danych churn_df i są dostępne jako X_train, X_test, y_train oraz y_test.
Do środowiska zostały już zaimportowane KNeighborsClassifier oraz biblioteka numpy jako np.
To ćwiczenie jest częścią kursu
Nadzorowane uczenie maszynowe z scikit-learn
Instrukcje do ćwiczenia
- Utwórz zmienną
neighborsjako tablicęnumpyz wartościami od1do12włącznie. - Utwórz instancję
KNeighborsClassifier, ustawiając liczbę sąsiadów równą bieżącej wartości iteratoraneighbor. - Dopasuj model do danych treningowych.
- Oblicz dokładność osobno dla zbioru treningowego i testowego, korzystając z metody
.score(), a wyniki przypisz odpowiednio do słownikówtrain_accuraciesitest_accuracies, używając iteratoraneighborjako indeksu.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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)