Переобучение и недообучение
Анализ сложности модели — один из лучших способов оценить качество обучения с учителем. Цель состоит в том, чтобы построить модель, которая точно улавливает связь между признаками и целевой переменной, а также хорошо обобщается на новые наблюдения.
Обучающая и тестовая выборки уже подготовлены из набора данных churn_df и загружены как X_train, X_test, y_train и y_test.
Кроме того, для вас уже импортированы KNeighborsClassifier и numpy под псевдонимом np.
Это упражнение является частью курса
Обучение с учителем с помощью scikit-learn
Инструкции к упражнению
- Создайте переменную
neighborsкак массивnumpyсо значениями от1до12включительно. - Создайте экземпляр
KNeighborsClassifier, задав количество соседей равным значению итератораneighbor. - Обучите модель на обучающих данных.
- Вычислите значения точности отдельно для обучающей и тестовой выборок с помощью метода
.score(), и сохраните результаты в словариtrain_accuraciesиtest_accuraciesсоответственно, используя итераторneighborв качестве индекса.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Create neighbors
neighbors = np.arange(____, ____)
train_accuracies = {}
test_accuracies = {}
for neighbor in neighbors:
# Set up a KNN Classifier
knn = ____(____=____)
# Fit the model
knn.____(____, ____)
# Compute accuracy
train_accuracies[____] = knn.____(____, ____)
test_accuracies[____] = knn.____(____, ____)
print(neighbors, '\n', train_accuracies, '\n', test_accuracies)