ÎncepețiÎncepe gratuit

Optimizează n_neighbors

Acum că avem date scalate, putem încerca să folosim un model KNN. Pentru a maximiza performanța, ar trebui să ajustăm hiperparametrii modelului. În cazul algoritmului k-nearest neighbors, avem un singur hiperparametru: n, adică numărul de vecini. Acest hiperparametru se setează atunci când creăm modelul cu KNeighborsRegressor. Argumentul pentru numărul de vecini este n_neighbors.

Vrem să testăm un interval de valori care să includă setarea cu cea mai bună performanță. De obicei, vom începe cu 2 vecini și vom crește până când metrica de evaluare începe să scadă. Vom folosi valoarea R\(^2\) obținută prin metoda .score() pe setul de testare (scaled_test_features și test_targets) pentru a optimiza n. Scorurile pe setul de testare ne vor ajuta să determinăm cel mai bun n.

Acest exercițiu face parte din cursul

Machine Learning pentru finanțe în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Parcurge valorile de la 2 la 12 pentru n și setează-le ca n_neighbors în modelul knn.
  • Antrenează modelul pe datele de antrenament (scaled_train_features și train_targets).
  • Afișează valorile R\(^2\) folosind metoda .score() a modelului knn pentru seturile de antrenament și de testare, apoi notează cel mai bun scor obținut pe setul de testare.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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
Editează și rulează codul