Menu
CoddyTech

Riduci con PCA

Fa parte della sezione Apprendimento non supervisionato del percorso Machine Learning di Coddy. Lezione 44 di 51.

64 pixel sono più di quanti ne servano per le cifre. PCA può puntare a una quota della varianza invece che a un numero di componenti:

Una curva crescente della quota della varianza delle cifre' mantenuta dai primi n componenti, ripida all’inizio e poi piatta; una linea tratteggiata al 90% la incontra a 21 componenti

n_components=0.9 mantiene il minor numero di componenti che conserva il 90%:

pca = PCA(n_components=0.9)
X_small = pca.fit_transform(X)
print(pca.n_components_, X_small.shape)

Questo stampa 21 (1797, 21): un terzo dei numeri, la maggior parte dell'immagine.

Nessuno scaler qui: ogni pixel condivide un'unità, con valori dell'inchiostro da 0 a 16. La scalatura trasformerebbe i pixel quasi vuoti dei bordi in caratteristiche a pieno titolo.

challenge icon

Sfida

Medio

È il momento di ridurre le scansioni. Il programma legge la quota di varianza da mantenere, ad esempio 0.8.

  1. Stampa quanti componenti PCA servono per quella quota sui pixel grezzi, poi sui pixel scalati.
  2. Mantieni la versione che ne richiede meno: stampa il suo nome e la forma dei suoi dati ridotti.

Per 0.6:

Raw pixels: 7 components
Scaled pixels: 11 components
Keep: raw pixels, shape (1797, 7)

Da qui in poi, il progetto mantiene l'80% della varianza.

Provalo tu

from sklearn.datasets import load_digits
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler

# Da Look at the Digits: 1,797 scansioni di 64 pixel, intensità dell'inchiostro da 0 a 16
digits = load_digits()
X = digits.data
y = digits.target

# La quota di varianza da conservare, ad esempio 0.8
share = float(input())

# Scrivi il tuo codice qui sotto
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Apprendimento non supervisionato

Esercitati da solo: Compilatore Python online