Componentes como padrões
Parte da seção Aprendizado não supervisionado do Journey de Machine Learning da Coddy. Lição 30 de 51.
O que a PCA analisou? Cada componente tem 64 pesos, um por pixel, e components_ contém uma linha por componente:
pca = PCA(n_components=4).fit(X)
print(pca.components_.shape)Isso exibe (4, 64). Reorganize uma linha em uma matriz de 8 por 8 e ela se torna uma imagem. cmap="gray_r" é uma escala de cinza invertida: pesos grandes ficam escuros, os negativos ficam claros:
ax.imshow(pca.components_[0].reshape(8, 8), cmap="gray_r")O Componente 1 é escuro onde os 4s e os 6s têm tinta, então eles ficam à direita do mapa. Uma digitalização recebe uma pontuação alta quando sua tinta cai em pixels escuros.
Desafio
MédioUm professor de caligrafia quer ver as diferentes maneiras como as pessoas escrevem um dígito. O programa lê o dígito, e o código inicial guarda as imagens digitalizadas em X.
- Ajuste o PCA com 3 componentes em
X. - Desenhe o componente
iemaxs[i]como uma imagem de 8 por 8, comcmap="gray_r", intitulada deComponent 1aComponent 3. - Exiba o gráfico.
Para os 2, ele desenha isto. Em seguida, Coddy descreve seus painéis:
Experimente você mesmo
import matplotlib.pyplot as plt
from sklearn.datasets import load_digits
from sklearn.decomposition import PCA
# Cada imagem digitalizada de um dígito, lido da entrada: 64 pixels por linha
d = int(input())
digits = load_digits()
X = digits.data[digits.target == d]
# Não altere a linha abaixo
fig, axs = plt.subplots(1, 3)
# Escreva seu código abaixo
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Aprendizado não supervisionado
1Encontrando Grupos
Aprendendo sem RótulosMedindo a SimilaridadeK-Means à MãoK-Means no scikit-learnRevisão: Frequentadores da Academia4Clustering Hierárquico
Mesclando passo a passoModelos aglomerativosDendrogramasRevisão: raças de cães7PCA na prática
Visualizando 64 dimensõesComponentes como padrõesComprimir e reconstruirPCA antes de um modeloRecapitulação: scanner facial10Projeto: Explorando os Dígitos
Observe os DígitosReduza com PCAAgrupe os DígitosDê Nome aos GruposEncontre os Diferentes2Escolhendo k
InérciaO método do cotoveloPontuações de silhuetaEscale antes de agruparRecapitulando: zonas de entregaPratique por conta própria: Compilador de Python online