Componentes como patrones
Parte de la sección Aprendizaje no supervisado del Journey de Machine Learning de Coddy. Lección 30 de 51.
¿Qué observó PCA? Cada componente tiene 64 pesos, uno por píxel, y components_ contiene una fila por componente:
pca = PCA(n_components=4).fit(X)
print(pca.components_.shape)Esto imprime (4, 64). Cambia la forma de una fila a 8 por 8 y se convierte en una imagen. cmap="gray_r" significa escala de grises invertida: los pesos grandes son oscuros y los negativos, claros:
ax.imshow(pca.components_[0].reshape(8, 8), cmap="gray_r")El componente 1 es oscuro donde los 4 y los 6 tienen tinta, así que quedan a la derecha del mapa. Una exploración obtiene una puntuación alta cuando su tinta cae sobre píxeles oscuros.
Desafío
IntermedioUna profesora de caligrafía quiere ver las distintas formas en que las personas escriben un dígito. El programa lee el dígito, y el código inicial guarda sus imágenes en X.
- Ajusta PCA con 3 componentes en
X. - Dibuja el componente
ienaxs[i]como una imagen de 8 por 8 concmap="gray_r", tituladaComponent 1aComponent 3. - Muestra el gráfico.
Para los 2, dibuja esto. Coddy después describe tus paneles:
Pruébalo tú mismo
import matplotlib.pyplot as plt
from sklearn.datasets import load_digits
from sklearn.decomposition import PCA
# Cada imagen escaneada de un dígito, leído de la entrada: 64 píxeles por fila
d = int(input())
digits = load_digits()
X = digits.data[digits.target == d]
# No cambies la línea de abajo
fig, axs = plt.subplots(1, 3)
# 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 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