Sobreajuste e subajuste
A interpretação da complexidade do modelo é uma ótima maneira de avaliar o desempenho do aprendizado supervisionado. Seu objetivo é produzir um modelo capaz de interpretar a relação entre as variáveis independentes e a variável dependente, além de generalizar bem quando exposto a novas observações.
Os conjuntos de treinamento e teste foram criados a partir do conjunto de dados churn_df
e pré-carregados como X_train
, X_test
, y_train
e y_test
.
Além disso, KNeighborsClassifier
foi importado para você junto com numpy
como np
.
Este exercício faz parte do curso
Aprendizado Supervisionado com o scikit-learn
Instruções de exercício
- Crie
neighbors
como uma matriz de valores donumpy
de1
até12
, incluindo 12. - Instancie um
KNeighborsClassifier
, com número de vizinhos igual ao do iteradorneighbor
. - Ajuste o modelo aos dados de treinamento.
- Calcule as pontuações de precisão do conjunto de treinamento e do conjunto de teste separadamente usando o método
.score()
e atribua os resultados aos dicionáriostrain_accuracies
etest_accuracies
, respectivamente, utilizando o iteradorneighbor
como índice.
Exercício interativo prático
Experimente este exercício preenchendo este código de exemplo.
# 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)