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
Pokyny k cvičení
- Projdi hodnoty od 2 do 12 pro
na nastav je jakon_neighborsv modeluknn. - Natrénuj model na trénovacích datech (
scaled_train_featuresatrain_targets). - Vypiš hodnoty R\(^2\) pomocí metody
.score()modeluknnpro 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