Začněte nyníZačněte zdarma

Optimalizace n_neighbors

Teď, když máme škálovaná data, můžeme vyzkoušet model KNN. Abychom dosáhli co nejlepšího výkonu, je potřeba doladit hyperparametry modelu. U algoritmu k nejbližších sousedů máme jen jeden hyperparametr: n, tedy počet sousedů. Tento hyperparametr nastavíme při vytváření modelu pomocí KNeighborsRegressor. Argument pro počet sousedů se jmenuje n_neighbors.

Chceme vyzkoušet rozsah hodnot, který pokryje nastavení s nejlepším výkonem. Obvykle začínáme se 2 sousedy a zvyšujeme hodnotu, dokud naše metrika přestane růst. Ke optimalizaci n použijeme hodnotu R\(^2\) z metody .score() na testovací sadě (scaled_test_features a test_targets). Nejlepší n určíme na základě skóre na testovací sadě.

Toto cvičení je součástí kurzu

Machine Learning for Finance in Python

Zobrazit kurz

Pokyny k cvičení

  • Projdi hodnoty od 2 do 12 pro n a nastav je jako n_neighbors v modelu knn.
  • Natrénuj model na trénovacích datech (scaled_train_features a train_targets).
  • Vypiš hodnoty R\(^2\) pomocí metody .score() modelu knn pro trénovací i testovací sadu a zaznamenej si nejlepší skóre na testovací sadě.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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
Upravit a spustit kód