Inizia subitoInizia gratis

Ottimizza n_neighbors

Ora che abbiamo dati scalati, possiamo provare a usare un modello KNN. Per massimizzare le prestazioni, dovremmo ottimizzare gli iperparametri del modello. Per l'algoritmo dei k-nearest neighbors abbiamo un solo iperparametro: n, il numero di vicini. Impostiamo questo iperparametro quando creiamo il modello con KNeighborsRegressor. L'argomento per il numero di vicini è n_neighbors.

Vogliamo provare un intervallo di valori che includa l'impostazione con le prestazioni migliori. Di solito si parte da 2 vicini e si aumenta finché la metrica di valutazione non inizia a peggiorare. Useremo il valore R\(^2\) del metodo .score() sul set di test (scaled_test_features e test_targets) per ottimizzare n qui. Useremo i punteggi sul set di test per determinare il miglior n.

Questo esercizio fa parte del corso

Machine Learning per la finanza in Python

Visualizza corso

Istruzioni dell'esercizio

  • Esegui un ciclo sui valori da 2 a 12 per n e imposta questo valore come n_neighbors nel modello knn.
  • Allena il modello sui dati di training (scaled_train_features e train_targets).
  • Stampa i valori R\(^2\) usando il metodo .score() del modello knn per i set di train e test, e prendi nota del punteggio migliore sul set di test.

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

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
Modifica ed esegui il codice