ПочатиПочніть безкоштовно

Оптимізуйте n_neighbors

Тепер, коли ми масштабували дані, можемо спробувати модель KNN. Щоб підвищити якість, слід налаштувати гіперпараметри моделі. Для алгоритму k найближчих сусідів маємо лише один гіперпараметр: n, кількість сусідів. Ми задаємо його під час створення моделі через KNeighborsRegressor. Аргумент для кількості сусідів — це n_neighbors.

Ми хочемо перебрати діапазон значень, який охоплює налаштування з найкращими результатами. Зазвичай починаємо з 2 сусідів і збільшуємо, доки наш показник якості не почне знижуватися. Тут для оптимізації n використаємо значення R\(^2\) з методу .score() на тестовій вибірці (scaled_test_features і test_targets). Саме за результатами на тестовій вибірці визначимо найкраще n.

Ця вправа є частиною курсу

Machine Learning для фінансів у Python

Переглянути курс

Інструкції до вправи

  • Переберіть значення від 2 до 12 для n і встановіть їх як n_neighbors у моделі knn.
  • Навчіть модель на тренувальних даних (scaled_train_features і train_targets).
  • Виведіть значення R\(^2\) за допомогою методу .score() моделі knn для тренувальної та тестової вибірок і занотуйте найкращий бал на тесті.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

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
Редагувати та запускати код