Optimera n_neighbors
Nu när vi har skalad data kan vi prova en KNN-modell. För att maximera prestandan bör vi finjustera modellens hyperparametrar. För k-nearest neighbors-algoritmen finns det bara en hyperparameter: n, antalet grannar. Den anges när vi skapar modellen med KNeighborsRegressor. Argumentet för antalet grannar heter n_neighbors.
Vi vill prova ett intervall av värden som täcker in den inställning som ger bäst prestanda. Vanligtvis börjar vi med 2 grannar och ökar tills vårt utvärderingsmått börjar sjunka. Här använder vi R\(^2\)-värdet från .score()-metoden på testmängden (scaled_test_features och test_targets) för att optimera n. Testmängdens poäng avgör vilket n som är bäst.
Den här övningen är en del av kursen
Maskininlärning för finans i Python
Övningsinstruktioner
- Loopa genom värdena 2 till 12 för
noch ange detta somn_neighborsiknn-modellen. - Anpassa modellen till träningsdata (
scaled_train_featuresochtrain_targets). - Skriv ut R\(^2\)-värdena med
.score()-metoden förknn-modellen på tränings- och testmängderna, och notera det bästa resultatet på testmängden.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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