Dígitos escritos a mano
Parte de la sección Aprendizaje supervisado del Journey de Machine Learning de Coddy. Lección 57 de 58.
La máquina clasificadora de una oficina de correos lee los dígitos del código postal escritos a mano en los escaneos de 8 por 8 que viste en Digits at a Glance, load_digits:
Dos candidatos quieren el puesto: k-NN, con el valor de k que sugiere un ingeniero, y un bosque aleatorio de 100 árboles.
Esta vez, los errores importan. La oficina necesita al ganador más justo, su puntuación en escaneos no vistos y su confusión más frecuente, así que esos dígitos se entregan a una persona.
Desafío
DifícilEl programa lee el k del ingeniero; el código inicial configura un gráfico con título.
- Separa un cuarto estratificado para las pruebas,
random_state=0. - Valida de forma cruzada k-NN con ese
ky un bosque de 100 árboles (random_state=0), con 5 particiones, usando las filas de entrenamiento. Imprime cada media (3 decimales) y el ganador. - Entrena el ganador e imprime su precisión en las pruebas.
- Imprime el error más grande de la matriz de confusión de las pruebas, luego dibuja la matriz en
axy la muestra.
Para otra máquina y 3:
k-NN: CV accuracy 0.979
Random forest: CV accuracy 0.968
Winner: k-NN
Test accuracy: 0.976
Most confused: 7 read as 2 (3 times)Después Coddy muestra tu matriz.
Pruébalo tú mismo
import matplotlib.pyplot as plt
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.neighbors import KNeighborsClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay
digits = load_digits()
X = digits.data
y = digits.target
k = int(input())
fig, ax = plt.subplots()
ax.set_title("Test Digits")
# Escribe tu código a continuación
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Aprendizaje supervisado
1Tu primer modelo
Aprender de ejemplosConjuntos de entrenamiento y pruebaAjustar y predecirEvaluar un modeloRepaso: clasificador de semillas4Regresión logística
Predicciones de sí o noEl umbral de decisiónLos pesos como evidenciaVarias clasesRepaso: filtro de spam2Vecinos más cercanos
Cómo decide k-NNCómo elegir kFronteras de decisiónEscalado para los vecinosRepaso: vecinos del vino5Medición de clasificadores
La matriz de confusiónPrecisión y exhaustividadLa puntuación F1Clases desequilibradasCurvas ROCRepaso: prueba de detección8Validación cruzada
Validación K-FoldComparación justa de modelosBúsqueda en cuadrículaRepaso: reparaciones de monopatines11Proyecto: especies de pingüinos
Conoce a los pingüinosPrepara los datosElige un modeloAjusta el modelo ganadorPublica el modelo3Regresión lineal
Predicción de númerosVarias característicasMedición de erroresGráficos de residuosRepaso: alquiler de bicicletas6Árboles de decisión
Los árboles hacen preguntasLeer un árbolProfundidad del árbolImportancia de las característicasRepaso: decisiones de préstamos9Métodos de conjunto
Bosques aleatoriosPor qué funcionan los bosquesAumento de gradienteRepaso: guardabosques12Desafíos finales
Progreso de la diabetesAprobación de créditoDígitos escritos a manoAbandono de clientesPractica por tu cuenta: Compilador de Python online