Zacznij terazZacznij za darmo

Optymalizacja n_neighbors

Mamy już przeskalowane dane, więc możemy wypróbować model KNN. Aby zmaksymalizować jego wydajność, warto dostroić hiperparametry modelu. W algorytmie k najbliższych sąsiadów mamy tylko jeden hiperparametr: n, czyli liczbę sąsiadów. Ustawiamy go podczas tworzenia modelu za pomocą KNeighborsRegressor. Argument odpowiadający za liczbę sąsiadów to n_neighbors.

Spróbujemy przetestować zakres wartości obejmujący ustawienie dające najlepszą wydajność. Zazwyczaj zaczynamy od 2 sąsiadów i zwiększamy tę liczbę, aż metryka oceny zacznie spadać. Użyjemy wartości R\(^2\) zwracanej przez metodę .score() na zbiorze testowym (scaled_test_features i test_targets), aby zoptymalizować n. Na podstawie wyników na zbiorze testowym wybierzemy najlepsze n.

To ćwiczenie jest częścią kursu

Uczenie maszynowe w finansach z Pythonem

Zobacz kurs

Instrukcje do ćwiczenia

  • Przejdź pętlą przez wartości od 2 do 12 dla n i ustaw je jako n_neighbors w modelu knn.
  • Dopasuj model do danych treningowych (scaled_train_features i train_targets).
  • Wyświetl wartości R\(^2\) za pomocą metody .score() modelu knn dla zbiorów treningowego i testowego, a następnie zanotuj najlepszy wynik na zbiorze testowym.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

from sklearn.neighbors import KNeighborsRegressor

for n in range(____):
    # Create and fit the KNN model
    knn = KNeighborsRegressor(n_neighbors=____)
    
    # Fit the model to the training data
    knn.fit(____, ____)
    
    # Print number of neighbors and the score to find the best value of n
    print("n_neighbors =", n)
    print('train, test scores')
    print(knn.score(scaled_train_features, train_targets))
    print(knn.score(____, ____))
    print()  # prints a blank line
Edytuj i uruchom kod