Entrenamiento y ajuste de modelos k-NN
Antes de empezar
Classification-Boston.ipynb está abierto en Jupyter Notebook.
Nota: Si cerró Jupyter Notebook desde que completó la actividad anterior, deberá reiniciar Jupyter Notebook y volver a abrir el archivo. Para asegurarse de que todos los objetos y la salida de Python están en el estado correcto para comenzar esta actividad:
- Seleccione Kernel→Reiniciar & y Borrar salida.
- Seleccione Reiniciar y borrar todas las salidas.
- Desplácese hacia abajo y seleccione la celda con la etiqueta Crear un modelo k vecinos más cercanos.
- Seleccione Celda→ Ejecutar todo lo anterior.
Escenario
Ahora que entrenó y ajustó los modelos de regresión logística, puede hacer lo mismo con el algoritmo k
vecinos más cercanos. No hay, necesariamente, un mejor algoritmo para el problema en cuestión, por lo que es una buena idea experimentar siempre que sea posible.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1.Cree un modelo k vecinos más cercanos.
1. Desplácese hacia abajo y vea la celda titulada Crear un modelo k vecinos más cercanos y examine la lista de código que aparece debajo de ella.
Este código creará un modelo k
vecinos más cercanos y mostrará el tiempo que se tardó en generar y la puntuación del modelo.
2. Ejecute la celda de código.
3. Examine el resultado.
- Es una alternativa al modelo de regresión logística creado en el paso anterior. Ambos modelos realizan una clasificación binaria, pero es útil crear varios modelos para ver si uno funciona mejor que otro.
- La puntuación para el modelo k
vecinos más cercanos es de alrededor del 75 %. Esto parece tener un rendimiento más bajo que el modelo de regresión logística, por lo que utilizará el modelo de regresión logística para el conjunto de pruebas real.
- En este caso, k
se genera mediante un método de bootstrapping, tomando la raíz cuadrada del número total de ejemplos de datos en el conjunto de entrenamiento. Para ayudar a evitar votos de empate en un clasificador binario, k
se incrementa por 1 si es par.
4. En la siguiente celda de código, examine el código.
Este código utilizará el modelo k
vecinos más cercanos para predecir la supervivencia de los pasajeros.
5. Ejecute la celda de código.
6. Examine el resultado.
La información incluida aquí está en el mismo formato que los resultados del modelo de regresión logística anterior, pero las predicciones son diferentes debido al modelo diferente utilizado.
Nota: Dado que k
-NN no genera probabilidades de predicción de la misma manera que lo hace la regresión logística, el método predict_proba()
muestra la fracción de vecinos que votaron por cada etiqueta. Así, en la primera fila de resultados, el ~93 % de los vecinos votaron por pereció (25 de un total de 27).
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2.Ajuste un modelo k vecinos más cercanos.
1. Desplácese hacia abajo y vea la celda titulada Ajustar un modelo k vecinos más cercanos y examine la lista de código que aparece debajo de ella.
Este código volverá a crear el modelo k
vecinos más cercanos utilizando un valor de hiperparámetro diferente para k
(n_neighbors
). En este caso, el valor que era 27
ahora se incrementa por 10 a 37
.
2. Ejecute la celda de código.
La puntuación de este modelo empeoró del 75 % al 71 % después del ajuste. Cambiar los hiperparámetros no siempre da como resultado un modelo mejor.
4. En la siguiente celda de código, examine el código.
Este código utilizará el modelo k
-NN ajustado para predecir la supervivencia de los pasajeros en el conjunto de validación.
5. Ejecute la celda de código.
6. Examine el resultado.
Al igual que con el modelo de regresión logística, el ajuste del modelo k
-NN produjo resultados diferentes. Por ejemplo, en la tercera fila, el modelo ajustado predijo incorrectamente que el pasajero sobrevivió, mientras que el modelo original no lo hizo.