Оценка качества KNN
Мы уже успели заметить кое-что интересное в результатах KNN. В частности, качество на обучающей выборке начиналось высоким и снижалось по мере роста n — это типичное поведение. Качество на тестовой выборке достигло пика при значении 5, поэтому именно его мы используем в итоговой модели KNN.
Как мы уже делали несколько раз, оценим качество визуально. Это поможет понять, насколько хорошо модель справляется с предсказаниями в разных диапазонах реальных значений. Получим предсказания модели knn с помощью метода .predict() на масштабированных признаках, а затем воспользуемся функцией plt.scatter() из matplotlib, чтобы построить точечный график фактических и предсказанных значений.
Это упражнение является частью курса
Машинное обучение для финансов на Python
Инструкции к упражнению
- Задайте значение
n_neighborsвKNeighborsRegressorравным 5 — наилучшему результату из предыдущего упражнения. - Получите предсказания модели
knnна основеscaled_train_featuresиscaled_test_features. - Постройте точечный график зависимости
test_targetsотtest_predictionsи подпишите его какtest.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Create the model with the best-performing n_neighbors of 5
knn = KNeighborsRegressor(____)
# Fit the model
knn.fit(scaled_train_features, train_targets)
# Get predictions for train and test sets
train_predictions = ____
test_predictions = ____
# Plot the actual vs predicted values
plt.scatter(train_predictions, train_targets, label='train')
plt.scatter(____)
plt.legend()
plt.show()