Kom igångKom igång gratis

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

Visa kurs

Övningsinstruktioner

  • Loopa genom värdena 2 till 12 för n och ange detta som n_neighbors i knn-modellen.
  • Anpassa modellen till träningsdata (scaled_train_features och train_targets).
  • Skriv ut R\(^2\)-värdena med .score()-metoden för knn-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
Redigera och kör kod