Sobreajuste e infraajuste
Interpretar la complejidad del modelo es una buena forma de evaluar el rendimiento del aprendizaje supervisado. Tu objetivo es producir un modelo que pueda interpretar la relación entre las características y la variable objetivo, así como generalizar bien cuando se exponga a nuevas observaciones.
Los conjuntos de entrenamiento y prueba se han creado a partir del conjunto de datos churn_df
y se han precargado como X_train
, X_test
, y_train
, y y_test
.
Además, se ha importado para ti KNeighborsClassifier
junto con numpy
como np
.
Este ejercicio forma parte del curso
Aprendizaje supervisado con scikit-learn
Instrucciones de ejercicio
- Crea
neighbors
como una matriznumpy
de valores desde1
hasta12
inclusive. - Instanciar un
KNeighborsClassifier
, con el número de vecinos igual al iteradorneighbor
. - Ajusta el modelo a los datos de entrenamiento.
- Calcula las puntuaciones de precisión del conjunto de entrenamiento y del conjunto de prueba por separado utilizando el método
.score()
, y asigna los resultados a los diccionariostrain_accuracies
ytest_accuracies
, respectivamente, utilizando el iteradorneighbor
como índice.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
# 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)