Menu
CoddyTech

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:

Una curva ascendente de la proporción de la varianza de los dígitos que conservan los primeros n componentes, pronunciada al principio y luego plana; una línea discontinua en el 90 % la cruza en 21 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.

challenge icon

Desafío

Intermedio

Es hora de reducir las exploraciones. El programa lee la proporción de varianza que se debe conservar, como 0.8.

  1. Imprime cuántos componentes necesita PCA para esa proporción en los píxeles sin procesar y, después, en los píxeles escalados.
  2. 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
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Aprendizaje no supervisado

Practica por tu cuenta: Compilador de Python online