CommencerCommencez gratuitement

Optimiser n_neighbors

Maintenant que nous avons des données mises à l'échelle, nous pouvons essayer d'utiliser un modèle KNN. Pour maximiser les performances, nous devons ajuster les hyperparamètres du modèle. Pour l'algorithme des k plus proches voisins, nous n'avons qu'un seul hyperparamètre : n, le nombre de voisins. Nous définissons cet hyperparamètre lorsque nous créons le modèle avec KNeighborsRegressor. L'argument pour le nombre de voisins est n_neighbors.

Nous souhaitons essayer un éventail de valeurs qui passe par le paramètre offrant la meilleure performance. En général, on commence avec 2 voisins et on augmente jusqu'à ce que notre métrique de scoring commence à diminuer. Nous utiliserons la valeur R\(^2\) de la méthode .score() sur l'ensemble de test (scaled_test_features et test_targets) pour optimiser n ici. Nous utiliserons les scores du jeu de test pour déterminer le meilleur n.

Cet exercice fait partie du cours

<cours>Machine Learning pour la finance en Python</cours>
Voir le cours

Instructions de l’exercice

  • Parcourez les valeurs de 2 à 12 pour n et définissez-les comme n_neighbors dans le modèle knn.
  • Ajustez le modèle sur les données d'entraînement (scaled_train_features et train_targets).
  • Affichez les valeurs R\(^2\) à l'aide de la méthode .score() du modèle knn pour les ensembles d'entraînement et de test, et notez la meilleure valeur sur l'ensemble de test.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

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
Modifier et exécuter le code