Comprimir e reconstruir
Parte da seção Aprendizado não supervisionado do Journey de Machine Learning da Coddy. Lição 31 de 51.
As pontuações dos componentes de uma digitalização são uma receita: comece pela digitalização média e, em seguida, some cada padrão multiplicado pela sua pontuação. inverse_transform segue a receita de volta até 64 pixels:
pca = PCA(n_components=10).fit(X)
codes = pca.transform(X) # 10 números por varredura
rebuilt = pca.inverse_transform(codes) # 64 pixels novamenteAqui estão três exames reconstruídos a partir de quantidades cada vez maiores de números:
Poucos números deixam o dígito borrado, próximo da média; cada componente adicionado restaura os detalhes. Vinte números, em vez de 64, já permitem ler com clareza.
Desafio
MédioUma caneta inteligente transmite cada dígito como k números de PCA, lidos pelo programa. O que se perde?
- Ajuste o PCA com
kcomponentes emX. Comprima todos os escaneamentos e, em seguida, reconstrua-os emrebuilt. - Imprima as linhas abaixo; o erro é a diferença absoluta média em relação a
X. - Desenhe o escaneamento mais recente,
X[-1], emaxs[0]e sua reconstrução emaxs[1], ambos comgray_r. Exiba.
Para 7:
Sent: 7 numbers per scan instead of 64
Average pixel error: 1.739e desenha isto. Em seguida, o Coddy descreve seus painéis:
Experimente você mesmo
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_digits
from sklearn.decomposition import PCA
# 1,797 digitalizações de 64 pixels; a digitalização mais recente da caneta está na última linha
digits = load_digits()
X = digits.data
k = int(input())
# Não altere as linhas abaixo
fig, axs = plt.subplots(1, 2)
axs[0].set_title("Scan")
axs[1].set_title(f"Rebuilt from {k} numbers")
# 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