Comprimir y reconstruir
Parte de la sección Aprendizaje no supervisado del Journey de Machine Learning de Coddy. Lección 31 de 51.
Las puntuaciones de los componentes de un escaneo son una receta: empieza con el escaneo promedio y después suma cada patrón multiplicado por su puntuación. inverse_transform sigue la receta de vuelta a 64 píxeles:
pca = PCA(n_components=10).fit(X)
codes = pca.transform(X) # 10 números por escaneo
rebuilt = pca.inverse_transform(codes) # 64 píxeles de nuevoAquí tienes tres escaneos reconstruidos con cada vez más números:
Con pocos números, la imagen queda borrosa y se acerca al dígito promedio; cada componente añadido recupera detalles. Veinte números en lugar de 64 ya se leen con claridad.
Desafío
IntermedioUn bolígrafo inteligente transmite cada dígito como k números PCA, que el programa lee. ¿Qué se pierde?
- Ajusta PCA con
kcomponentes sobreX. Comprime todos los escaneos y después reconstruye cada uno enrebuilt. - Imprime las líneas de abajo; el error es la diferencia absoluta media respecto de
X. - Dibuja el escaneo más reciente,
X[-1], enaxs[0]y su reconstrucción enaxs[1], ambos congray_r. Muestra el resultado.
Para 7:
Sent: 7 numbers per scan instead of 64
Average pixel error: 1.739y dibuja esto. Coddy describe entonces tus paneles:
Pruébalo tú mismo
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_digits
from sklearn.decomposition import PCA
# 1,797 escaneos de 64 píxeles; el escaneo más reciente del lápiz está en la última fila
digits = load_digits()
X = digits.data
k = int(input())
# No cambies las líneas de abajo
fig, axs = plt.subplots(1, 2)
axs[0].set_title("Scan")
axs[1].set_title(f"Rebuilt from {k} numbers")
# Escribe tu código abajo
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Aprendizaje no supervisado
1Encontrar grupos
Aprender sin etiquetasMedir la similitudK-Means a manoK-Means en scikit-learnRepaso: miembros del gimnasio7PCA en la práctica
Visualizar 64 dimensionesComponentes como patronesComprimir y reconstruirPCA antes de un modeloRepaso: escáner facial10Proyecto: Explorador de dígitos
Observa los dígitosReduce con PCAAgrupa los dígitosPon nombre a los gruposEncuentra los diferentes2Elegir k
InerciaEl método del codoPuntuaciones de siluetaEscalar antes de agruparRepaso: zonas de entrega3Interpretación de los clústeres
Perfilado de clústeresCentros en unidades realesClústeres frente a etiquetas conocidasCuándo falla K-MeansRepaso: cata de téPractica por tu cuenta: Compilador de Python online