Reduce con PCA
Parte de la sección Aprendizaje no supervisado del Journey de Machine Learning de Coddy. Lección 44 de 51.
64 píxeles son más de los que necesitan los dígitos. PCA puede apuntar a una proporción de la varianza en lugar de a un número de componentes:
n_components=0.9 conserva el menor número de componentes que retienen el 90 %:
pca = PCA(n_components=0.9)
X_small = pca.fit_transform(X)
print(pca.n_components_, X_small.shape)Esto imprime 21 (1797, 21): un tercio de los números, la mayor parte de la imagen.
Aquí no hay escalador: todos los píxeles comparten una unidad, con valores de tinta de 0 a 16. El escalado inflaría los píxeles casi en blanco de los bordes hasta convertirlos en características completas.
Desafío
IntermedioEs hora de reducir las exploraciones. El programa lee la proporción de varianza que se debe conservar, como 0.8.
- Imprime cuántos componentes necesita PCA para esa proporción en los píxeles sin procesar y, después, en los píxeles escalados.
- Conserva la versión que necesite menos: imprime su nombre y la forma de sus datos reducidos.
Para 0.6:
Raw pixels: 7 components
Scaled pixels: 11 components
Keep: raw pixels, shape (1797, 7)A partir de aquí, el proyecto conserva el 80% de la varianza.
Pruébalo tú mismo
from sklearn.datasets import load_digits
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
# De Look at the Digits: 1,797 imágenes de 64 píxeles, con intensidad de tinta de 0 a 16
digits = load_digits()
X = digits.data
y = digits.target
# La proporción de varianza que se debe conservar, como 0.8
share = float(input())
# 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