Aan de slagBegin gratis

Optimaliseer n_neighbors

Nu we geschaalde data hebben, kunnen we een KNN-model proberen. Om de prestaties te maximaliseren, moeten we de hyperparameters van ons model afstemmen. Voor het k-nearest neighbors-algoritme hebben we maar één hyperparameter: n, het aantal buren. We stellen deze hyperparameter in wanneer we het model maken met KNeighborsRegressor. Het argument voor het aantal buren is n_neighbors.

We willen een bereik aan waarden proberen dat de instelling met de beste prestatie doorkruist. Meestal beginnen we met 2 buren en verhogen we dit totdat onze beoordelingsmetric begint te dalen. We gebruiken de R\(^2\)-waarde van de .score()-methode op de testset (scaled_test_features en test_targets) om n hier te optimaliseren. We gebruiken de scores op de testset om de beste n te bepalen.

Deze oefening maakt deel uit van de cursus

Machine Learning voor finance in Python

Bekijk cursus

Oefeninstructies

  • Loop voor n door de waarden 2 tot en met 12 en stel dit in als n_neighbors in het knn-model.
  • Fit het model op de trainingsdata (scaled_train_features en train_targets).
  • Print de R\(^2\)-waarden met de .score()-methode van het knn-model voor de train- en testsets, en noteer de beste score op de testset.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

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
Code bewerken en uitvoeren