Menu
CoddyTech

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:

Veinte dígitos escritos a mano en dos filas, del 0 al 9 por dos escritores diferentes, dibujados como pequeños escaneos grises pixelados; algunos se parecen mucho a otros dígitos

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.

challenge icon

Desafío

Difícil

El programa lee el k del ingeniero; el código inicial configura un gráfico con título.

  1. Separa un cuarto estratificado para las pruebas, random_state=0.
  2. Valida de forma cruzada k-NN con ese k y un bosque de 100 árboles (random_state=0), con 5 particiones, usando las filas de entrenamiento. Imprime cada media (3 decimales) y el ganador.
  3. Entrena el ganador e imprime su precisión en las pruebas.
  4. Imprime el error más grande de la matriz de confusión de las pruebas, luego dibuja la matriz en ax y 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
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Aprendizaje supervisado

Practica por tu cuenta: Compilador de Python online