Оптимізуйте 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